CPU vulnerabilities - where are we now?

DefCamp
DefCampDefCamp
CPU vulnerabilities - where are we now?
CPU Vulnerabilities
Where are we now?
Manuel Wiesinger
mwiesinger@sba-research.at
What happened so far?
2018
Spectre
V1,V2,V3
(M
eltdow
n)
Jan.
What happened so far?
2018
Spectre
V1,V2,V3
(M
eltdow
n)
Jan.
Firstreportsofexperim
entalexploitation
Feb.
What happened so far?
2018
Spectre
V1,V2,V3
(M
eltdow
n)
Jan.
Firstreportsofexperim
entalexploitation
Feb.
BranchScope
M
ar.
Spectre
V3a,Spectre
V4
M
ay
LazyFP,SGX
Spectre
Jun.
Spectre1.1,Spectre1.2,NetSpectre,ret2spec,SpectreRSB
Jul.
L1TFSGX,L1TFOS/SM
M
,L1TFVM
M
,Labeled
Aug.
What happened so far?
2018
Spectre
V1,V2,V3
(M
eltdow
n)
Jan.
Firstreportsofexperim
entalexploitation
Feb.
BranchScope
M
ar.
Spectre
V3a,Spectre
V4
M
ay
LazyFP,SGX
Spectre
Jun.
Spectre1.1,Spectre1.2,NetSpectre,ret2spec,SpectreRSB
Jul.
L1TFSGX,L1TFOS/SM
M
,L1TFVM
M
,Labeled
Aug.
Yetanotherone!
Oct.
2
Impact
• Allows data extraction from arbitrary local memory (!)
3
Impact
• Allows data extraction from arbitrary local memory (!)
• Exploitable from JavaScript environments (websites!!)
3
Impact
• Allows data extraction from arbitrary local memory (!)
• Exploitable from JavaScript environments (websites!!)
• Via the network (!!!)
3
Impact
• Allows data extraction from arbitrary local memory (!)
• Exploitable from JavaScript environments (websites!!)
• Via the network (!!!)
3
Who can feel safe?
• Nobody using computers built after 1995.
◦ Any CPU manufacturer
◦ Any operating system
◦ Any Device type
• Don’t trust the memory!
4
How can we fix CPU
vulnerabilities ?
Can software fix this?Do we need to throw all our computers away?
5
6
Attack Limitations
• Difficult — conventional attacks typically easier
7
Attack Limitations
• Difficult — conventional attacks typically easier
• Via the network
◦ Works only under laboratory conditions
◦ Slow (15 bit / hour)
7
Attack Limitations
• Difficult — conventional attacks typically easier
• Via the network
◦ Works only under laboratory conditions
◦ Slow (15 bit / hour) — Still: extract a 256 bit key in ∼ 17 hours
7
Attack Limitations
• Difficult — conventional attacks typically easier
• Via the network
◦ Works only under laboratory conditions
◦ Slow (15 bit / hour) — Still: extract a 256 bit key in ∼ 17 hours
• Mitigations on the way
◦ Partly already deployed via microcode and OS upgrades
7
Fixes for CPU-Vulnerabilities
Name CVE Aliases CVSS Impact Fix available
Spectre V1 2017-5753 Bounds Check Bypass 5.6 Memory Microcode/Browser/OS
Spectre V2 2017-5715 5.6 Memory Microcode/Compiler ?
Spectre V3 2017-5754 Meltdown 5.6 Kernel memory OS
Spectre V3a 2018-3640 Spectre V3a (RSRE) 5.6 Register data Microcode?
Spectre V4 2018-3639 Speculative Store Bypass (SSB) 5.5 Memory OS
Spectre V5 N/A ret2spec 5.5 Memory Browser?
SpectreRSB N/A N/A Memory OS
Lazy FP 2018-3665 5.6 Registers OS
Spectre1.1 2018-3693 5.6 Kernel memory OS
Spectre1.2 N/A N/A Kerslidesmory OS
L1TF: SGX 2018-3615 Foreshadow (SGX) 6.4 SGX enclaves Microcode
L1TF: OS/SMM 2018-3620 Foreshadow-NG (OS) 5.6 Kernel memory Microcode
L1TF: VMM 2018-3646 Foreshadow-NG (VMM) 5.6 Kernel memory Microcode
BranchScope 2018-9056 5.6 VM memory Microcode?
SGXPectre N/A N/A SGX enclaves Microcode?
NetSpectre N/A N/A Remote memory OS?
TLBleed N/A N/A Microcode?
8
We do not know what
else is out there!
9
How do CPU
vulnerabilities work?
Two Basic Terms
• Side-channel
◦ Passive
◦ E.g Timing analysis, or even acoustic analysis
10
Two Basic Terms
• Side-channel
◦ Passive
◦ E.g Timing analysis, or even acoustic analysis
• Covered Channel
◦ Active
◦ E.g. Trojan Horse
10
CPU-Caches
CPU
CPU-Cache
← data →
command →
address →
11
Hyper-Threading
CPU
Hyper-Threading
CPU
Process 1
0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Hyper-Threading
CPU
Process 1
0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
Hyper-Threading
CPU
Process 1
0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
Hyper-Threading
CPU
Process 1
0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
12
Speculative Execution
CPU
Speculative Execution
CPU
Process 1
0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Speculative Execution
CPU
Process 1
0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
Speculative Execution
CPU
Process 1
0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
CPU-Cache
Speculative Execution
CPU
Process 1
0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
CPU-Cache
? ? ? ? ?
”I try to guess, so I’m faster!”
Speculative Execution
CPU
Process 1
0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
CPU-Cache
? ? ? ? ?
”I try to guess, so I’m faster!”
Speculative Execution
CPU
Process 1
0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
CPU-Cache
? ? ? ? ?
”I try to guess, so I’m faster!”
Speculative Execution
CPU
Process 1
0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
CPU-Cache
? ? ? ? ?
”I try to guess, so I’m faster!”
Speculative Execution
CPU
Process 1
0x90 0x90 0x90 0x90 0x90
0x90 0x90 0x90
Process 2
0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
0xAE 0xAE 0xAE
CPU-Cache
? ? ? ? ?
”I try to guess, so I’m faster!”
13
Hands on! — Meltdown
Hands on! — Meltdown
1. Access data D at an illegal address — get’s executed
speculatively
2. Make an address A of the data D — just a shl
3. Load data at address A
4. Program crashes
5. Do some tricks (e.g. fork)
6. Probe access time to A to learn if it is cached
7. Now we know that an address based on D is cached
8. Revert step 2 to get the data
14
How can you protect yourself?
15
How can you protect yourself?
• As always: Apply Security-Updates!
15
How can you protect yourself?
• As always: Apply Security-Updates!
• Don’t trust the memory!
15
How can you protect yourself?
• As always: Apply Security-Updates!
• Don’t trust the memory!
◦ Overwrite critical data!
15
How can you protect yourself?
• As always: Apply Security-Updates!
• Don’t trust the memory!
◦ Overwrite critical data!
◦ C: explicit_bzero()
15
How can you protect yourself?
• As always: Apply Security-Updates!
• Don’t trust the memory!
◦ Overwrite critical data!
◦ C: explicit_bzero()
◦ Java: char[]
15
How can you protect yourself?
• As always: Apply Security-Updates!
• Don’t trust the memory!
◦ Overwrite critical data!
◦ C: explicit_bzero()
◦ Java: char[]
◦ Python, Go, and co. (essentially all garbage collecting languages
with immutable strings): No guaranteed solution.
15
Questions?
16
Backup Slides
Meltdown
1 retry:
2 mov al , byte [rcx]
3 shl rax , 0xc
4 jz retry
5 mov rbx , qword [rbx + rax]
17
Meltdown
1 retry:
2 mov al , byte [rcx]
3 shl rax , 0xc
4 jz retry
5 mov rbx , qword [rbx + rax]
18
Meltdown
1 retry:
2 mov al, byte [rcx]
3 shl rax , 0xc
4 jz retry
5 mov rbx , qword [rbx + rax]
19
Meltdown
1 retry:
2 mov al , byte [rcx]
3 shl rax, 0xc
4 jz retry
5 mov rbx , qword [rbx + rax]
20
Meltdown
1 retry:
2 mov al , byte [rcx]
3 shl rax , 0xc
4 jz retry
5 mov rbx , qword [rbx + rax]
21
Meltdown
1 retry:
2 mov al , byte [rcx]
3 shl rax , 0xc
4 jz retry
5 mov rbx , qword [rbx + rax]
22
Meltdown
1 retry:
2 mov al , byte [rcx]
3 shl rax , 0xc
4 jz retry
5 mov rbx, qword [rbx + rax]
23
1 of 56

Recommended

Is rust language really safe? by
Is rust language really safe? Is rust language really safe?
Is rust language really safe? Nullbyte Security Conference
414 views20 slides
Эксплуатируем неэксплуатируемые уязвимости SAP by
Эксплуатируем неэксплуатируемые уязвимости SAPЭксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAPPositive Hack Days
853 views121 slides
The true story_of_hello_world by
The true story_of_hello_worldThe true story_of_hello_world
The true story_of_hello_worldfantasy zheng
2.5K views31 slides
C&C Botnet Factory by
C&C Botnet FactoryC&C Botnet Factory
C&C Botnet FactoryNullbyte Security Conference
1.1K views27 slides
העתיד כבר כאן - שימוש בטכנולוגיות החדשות כבר היום by
העתיד כבר כאן - שימוש בטכנולוגיות החדשות כבר היוםהעתיד כבר כאן - שימוש בטכנולוגיות החדשות כבר היום
העתיד כבר כאן - שימוש בטכנולוגיות החדשות כבר היוםRonny Orbach
1.9K views52 slides
Bus Pirate of The Caribbean by
Bus Pirate of The CaribbeanBus Pirate of The Caribbean
Bus Pirate of The Caribbeandrubicza .
213 views14 slides

More Related Content

What's hot

Gnu linux on arm for $50 - $100 by
Gnu linux on arm for $50 - $100Gnu linux on arm for $50 - $100
Gnu linux on arm for $50 - $100Dobrica Pavlinušić
1.3K views15 slides
BSides DFW2016-Hack Mode Enabled by
BSides DFW2016-Hack Mode EnabledBSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode Enabledpricemcdonald
496 views44 slides
Spider Setup with AWS/sandbox by
Spider Setup with AWS/sandboxSpider Setup with AWS/sandbox
Spider Setup with AWS/sandboxI Goo Lee
497 views56 slides
MQTTS mosquitto - cheat sheet - by
MQTTS mosquitto - cheat sheet -MQTTS mosquitto - cheat sheet -
MQTTS mosquitto - cheat sheet -Naoto MATSUMOTO
2.2K views2 slides
How to Install nRF51 IPv6 over Bluetooth using MDK-ARM+IoT SDK by
How to Install nRF51 IPv6 over Bluetooth using MDK-ARM+IoT SDKHow to Install nRF51 IPv6 over Bluetooth using MDK-ARM+IoT SDK
How to Install nRF51 IPv6 over Bluetooth using MDK-ARM+IoT SDKNaoto MATSUMOTO
1.6K views5 slides
Vt6655 linux user_guide by
Vt6655 linux user_guideVt6655 linux user_guide
Vt6655 linux user_guideMONTBUIAUTOESCOLA
403 views18 slides

What's hot(20)

BSides DFW2016-Hack Mode Enabled by pricemcdonald
BSides DFW2016-Hack Mode EnabledBSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode Enabled
pricemcdonald496 views
Spider Setup with AWS/sandbox by I Goo Lee
Spider Setup with AWS/sandboxSpider Setup with AWS/sandbox
Spider Setup with AWS/sandbox
I Goo Lee497 views
MQTTS mosquitto - cheat sheet - by Naoto MATSUMOTO
MQTTS mosquitto - cheat sheet -MQTTS mosquitto - cheat sheet -
MQTTS mosquitto - cheat sheet -
Naoto MATSUMOTO2.2K views
How to Install nRF51 IPv6 over Bluetooth using MDK-ARM+IoT SDK by Naoto MATSUMOTO
How to Install nRF51 IPv6 over Bluetooth using MDK-ARM+IoT SDKHow to Install nRF51 IPv6 over Bluetooth using MDK-ARM+IoT SDK
How to Install nRF51 IPv6 over Bluetooth using MDK-ARM+IoT SDK
Naoto MATSUMOTO1.6K views
Defcon Moscow #0x0A - Mikhail Firstov "Hacking routers as Web Hacker" by Defcon Moscow
Defcon Moscow #0x0A - Mikhail Firstov "Hacking routers as Web Hacker"Defcon Moscow #0x0A - Mikhail Firstov "Hacking routers as Web Hacker"
Defcon Moscow #0x0A - Mikhail Firstov "Hacking routers as Web Hacker"
Defcon Moscow2.9K views
Cisco adaptive security appliance (asa) firewalls lifeline of today’s data ce... by IT Tech
Cisco adaptive security appliance (asa) firewalls lifeline of today’s data ce...Cisco adaptive security appliance (asa) firewalls lifeline of today’s data ce...
Cisco adaptive security appliance (asa) firewalls lifeline of today’s data ce...
IT Tech2.5K views
Honeypots: Visão Geral by bernardo_mr
Honeypots: Visão GeralHoneypots: Visão Geral
Honeypots: Visão Geral
bernardo_mr1.6K views
44CON London 2015 - Hunting Asynchronous Vulnerabilities by 44CON
44CON London 2015 - Hunting Asynchronous Vulnerabilities44CON London 2015 - Hunting Asynchronous Vulnerabilities
44CON London 2015 - Hunting Asynchronous Vulnerabilities
44CON949 views
GCC ARM nRF51 IoT SDK -cheat sheet- by Naoto MATSUMOTO
GCC ARM nRF51 IoT SDK -cheat sheet-GCC ARM nRF51 IoT SDK -cheat sheet-
GCC ARM nRF51 IoT SDK -cheat sheet-
Naoto MATSUMOTO1.3K views
如何利用 Docker 強化網站安全 by Tim Hsu
如何利用 Docker 強化網站安全如何利用 Docker 強化網站安全
如何利用 Docker 強化網站安全
Tim Hsu2.3K views
How to Connect MQTT Broker on ESP8266 WiFi by Naoto MATSUMOTO
How to Connect MQTT Broker on ESP8266 WiFiHow to Connect MQTT Broker on ESP8266 WiFi
How to Connect MQTT Broker on ESP8266 WiFi
Naoto MATSUMOTO3.8K views
窺探職場上所需之資安專業技術與能力 Tdohconf by jack51706
窺探職場上所需之資安專業技術與能力 Tdohconf窺探職場上所需之資安專業技術與能力 Tdohconf
窺探職場上所需之資安專業技術與能力 Tdohconf
jack517064.3K views
How to twist a IPv6 over Bluetooth (6lowpan) by Naoto MATSUMOTO
How to twist a IPv6 over Bluetooth (6lowpan) How to twist a IPv6 over Bluetooth (6lowpan)
How to twist a IPv6 over Bluetooth (6lowpan)
Naoto MATSUMOTO1.7K views
Kernel Recipes 2016 - Wo needs a real-time operating system (not you!) by Anne Nicolas
Kernel Recipes 2016 - Wo needs a real-time operating system (not you!)Kernel Recipes 2016 - Wo needs a real-time operating system (not you!)
Kernel Recipes 2016 - Wo needs a real-time operating system (not you!)
Anne Nicolas2K views

Similar to CPU vulnerabilities - where are we now?

[CCC-28c3] Post Memory Corruption Memory Analysis by
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory AnalysisMoabi.com
2.5K views94 slides
Sangam 18 - Database Development: Return of the SQL Jedi by
Sangam 18 - Database Development: Return of the SQL JediSangam 18 - Database Development: Return of the SQL Jedi
Sangam 18 - Database Development: Return of the SQL JediConnor McDonald
900 views140 slides
[Kiwicon 2011] Post Memory Corruption Memory Analysis by
[Kiwicon 2011] Post Memory Corruption Memory Analysis[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory AnalysisMoabi.com
807 views84 slides
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick by
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON
2.7K views93 slides
[HITB Malaysia 2011] Exploit Automation by
[HITB Malaysia 2011] Exploit Automation[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit AutomationMoabi.com
1.2K views84 slides
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes by
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesPeter Hlavaty
31.1K views50 slides

Similar to CPU vulnerabilities - where are we now?(20)

[CCC-28c3] Post Memory Corruption Memory Analysis by Moabi.com
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
Moabi.com2.5K views
Sangam 18 - Database Development: Return of the SQL Jedi by Connor McDonald
Sangam 18 - Database Development: Return of the SQL JediSangam 18 - Database Development: Return of the SQL Jedi
Sangam 18 - Database Development: Return of the SQL Jedi
Connor McDonald900 views
[Kiwicon 2011] Post Memory Corruption Memory Analysis by Moabi.com
[Kiwicon 2011] Post Memory Corruption Memory Analysis[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory Analysis
Moabi.com807 views
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick by 44CON
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON2.7K views
[HITB Malaysia 2011] Exploit Automation by Moabi.com
[HITB Malaysia 2011] Exploit Automation[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit Automation
Moabi.com1.2K views
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes by Peter Hlavaty
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Peter Hlavaty31.1K views
[Ruxcon 2011] Post Memory Corruption Memory Analysis by Moabi.com
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis
Moabi.com793 views
Metasepi team meeting #16: Safety on ATS language + MCU by Kiwamu Okabe
Metasepi team meeting #16: Safety on ATS language + MCUMetasepi team meeting #16: Safety on ATS language + MCU
Metasepi team meeting #16: Safety on ATS language + MCU
Kiwamu Okabe15.1K views
Steelcon 2014 - Process Injection with Python by infodox
Steelcon 2014 - Process Injection with PythonSteelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with Python
infodox8.8K views
hacking-embedded-devices.pptx by ssuserfcf43f
hacking-embedded-devices.pptxhacking-embedded-devices.pptx
hacking-embedded-devices.pptx
ssuserfcf43f35 views
Writing Metasploit Plugins by amiable_indian
Writing Metasploit PluginsWriting Metasploit Plugins
Writing Metasploit Plugins
amiable_indian15.5K views
NSC #2 - Challenge Solution by NoSuchCon
NSC #2 - Challenge SolutionNSC #2 - Challenge Solution
NSC #2 - Challenge Solution
NoSuchCon1.6K views
Copy Protection Wars: Analyzing Retro and Modern Schemes (RSA 2007) by Nate Lawson
Copy Protection Wars: Analyzing Retro and Modern Schemes (RSA 2007)Copy Protection Wars: Analyzing Retro and Modern Schemes (RSA 2007)
Copy Protection Wars: Analyzing Retro and Modern Schemes (RSA 2007)
Nate Lawson3K views
Know your platform. 7 things every scala developer should know about jvm by Pawel Szulc
Know your platform. 7 things every scala developer should know about jvmKnow your platform. 7 things every scala developer should know about jvm
Know your platform. 7 things every scala developer should know about jvm
Pawel Szulc1.7K views
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik by CODE BLUE
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
CODE BLUE107 views
look inside your (Liferay) portal by IBACZ
look inside your (Liferay) portallook inside your (Liferay) portal
look inside your (Liferay) portal
IBACZ2.4K views
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan... by Ernie Souhrada
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...
Ernie Souhrada15K views
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?" by Yulia Tsisyk
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Yulia Tsisyk745 views

More from DefCamp

Remote Yacht Hacking by
Remote Yacht HackingRemote Yacht Hacking
Remote Yacht HackingDefCamp
1.7K views89 slides
Mobile, IoT, Clouds… It’s time to hire your own risk manager! by
Mobile, IoT, Clouds… It’s time to hire your own risk manager!Mobile, IoT, Clouds… It’s time to hire your own risk manager!
Mobile, IoT, Clouds… It’s time to hire your own risk manager!DefCamp
974 views167 slides
The Charter of Trust by
The Charter of TrustThe Charter of Trust
The Charter of TrustDefCamp
560 views24 slides
Internet Balkanization: Why Are We Raising Borders Online? by
Internet Balkanization: Why Are We Raising Borders Online?Internet Balkanization: Why Are We Raising Borders Online?
Internet Balkanization: Why Are We Raising Borders Online?DefCamp
309 views22 slides
Bridging the gap between CyberSecurity R&D and UX by
Bridging the gap between CyberSecurity R&D and UXBridging the gap between CyberSecurity R&D and UX
Bridging the gap between CyberSecurity R&D and UXDefCamp
260 views13 slides
Secure and privacy-preserving data transmission and processing using homomorp... by
Secure and privacy-preserving data transmission and processing using homomorp...Secure and privacy-preserving data transmission and processing using homomorp...
Secure and privacy-preserving data transmission and processing using homomorp...DefCamp
470 views102 slides

More from DefCamp(20)

Remote Yacht Hacking by DefCamp
Remote Yacht HackingRemote Yacht Hacking
Remote Yacht Hacking
DefCamp1.7K views
Mobile, IoT, Clouds… It’s time to hire your own risk manager! by DefCamp
Mobile, IoT, Clouds… It’s time to hire your own risk manager!Mobile, IoT, Clouds… It’s time to hire your own risk manager!
Mobile, IoT, Clouds… It’s time to hire your own risk manager!
DefCamp974 views
The Charter of Trust by DefCamp
The Charter of TrustThe Charter of Trust
The Charter of Trust
DefCamp560 views
Internet Balkanization: Why Are We Raising Borders Online? by DefCamp
Internet Balkanization: Why Are We Raising Borders Online?Internet Balkanization: Why Are We Raising Borders Online?
Internet Balkanization: Why Are We Raising Borders Online?
DefCamp309 views
Bridging the gap between CyberSecurity R&D and UX by DefCamp
Bridging the gap between CyberSecurity R&D and UXBridging the gap between CyberSecurity R&D and UX
Bridging the gap between CyberSecurity R&D and UX
DefCamp260 views
Secure and privacy-preserving data transmission and processing using homomorp... by DefCamp
Secure and privacy-preserving data transmission and processing using homomorp...Secure and privacy-preserving data transmission and processing using homomorp...
Secure and privacy-preserving data transmission and processing using homomorp...
DefCamp470 views
Drupalgeddon 2 – Yet Another Weapon for the Attacker by DefCamp
Drupalgeddon 2 – Yet Another Weapon for the AttackerDrupalgeddon 2 – Yet Another Weapon for the Attacker
Drupalgeddon 2 – Yet Another Weapon for the Attacker
DefCamp269 views
Economical Denial of Sustainability in the Cloud (EDOS) by DefCamp
Economical Denial of Sustainability in the Cloud (EDOS)Economical Denial of Sustainability in the Cloud (EDOS)
Economical Denial of Sustainability in the Cloud (EDOS)
DefCamp254 views
Trust, but verify – Bypassing MFA by DefCamp
Trust, but verify – Bypassing MFATrust, but verify – Bypassing MFA
Trust, but verify – Bypassing MFA
DefCamp323 views
Threat Hunting: From Platitudes to Practical Application by DefCamp
Threat Hunting: From Platitudes to Practical ApplicationThreat Hunting: From Platitudes to Practical Application
Threat Hunting: From Platitudes to Practical Application
DefCamp218 views
Building application security with 0 money down by DefCamp
Building application security with 0 money downBuilding application security with 0 money down
Building application security with 0 money down
DefCamp179 views
Implementation of information security techniques on modern android based Kio... by DefCamp
Implementation of information security techniques on modern android based Kio...Implementation of information security techniques on modern android based Kio...
Implementation of information security techniques on modern android based Kio...
DefCamp215 views
Lattice based Merkle for post-quantum epoch by DefCamp
Lattice based Merkle for post-quantum epochLattice based Merkle for post-quantum epoch
Lattice based Merkle for post-quantum epoch
DefCamp241 views
The challenge of building a secure and safe digital environment in healthcare by DefCamp
The challenge of building a secure and safe digital environment in healthcareThe challenge of building a secure and safe digital environment in healthcare
The challenge of building a secure and safe digital environment in healthcare
DefCamp323 views
Timing attacks against web applications: Are they still practical? by DefCamp
Timing attacks against web applications: Are they still practical?Timing attacks against web applications: Are they still practical?
Timing attacks against web applications: Are they still practical?
DefCamp258 views
Tor .onions: The Good, The Rotten and The Misconfigured by DefCamp
Tor .onions: The Good, The Rotten and The Misconfigured Tor .onions: The Good, The Rotten and The Misconfigured
Tor .onions: The Good, The Rotten and The Misconfigured
DefCamp817 views
Needles, Haystacks and Algorithms: Using Machine Learning to detect complex t... by DefCamp
Needles, Haystacks and Algorithms: Using Machine Learning to detect complex t...Needles, Haystacks and Algorithms: Using Machine Learning to detect complex t...
Needles, Haystacks and Algorithms: Using Machine Learning to detect complex t...
DefCamp294 views
We will charge you. How to [b]reach vendor’s network using EV charging station. by DefCamp
We will charge you. How to [b]reach vendor’s network using EV charging station.We will charge you. How to [b]reach vendor’s network using EV charging station.
We will charge you. How to [b]reach vendor’s network using EV charging station.
DefCamp443 views
Connect & Inspire Cyber Security by DefCamp
Connect & Inspire Cyber SecurityConnect & Inspire Cyber Security
Connect & Inspire Cyber Security
DefCamp290 views
The lions and the watering hole by DefCamp
The lions and the watering holeThe lions and the watering hole
The lions and the watering hole
DefCamp225 views

Recently uploaded

Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ by
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericConfidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericShapeBlue
58 views9 slides
The Role of Patterns in the Era of Large Language Models by
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language ModelsYunyao Li
74 views65 slides
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TShapeBlue
81 views34 slides
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...ShapeBlue
120 views62 slides
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueShapeBlue
149 views7 slides
Kyo - Functional Scala 2023.pdf by
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
443 views92 slides

Recently uploaded(20)

Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ by ShapeBlue
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericConfidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
ShapeBlue58 views
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li74 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue81 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue120 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue149 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue86 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue105 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue48 views
State of the Union - Rohit Yadav - Apache CloudStack by ShapeBlue
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStack
ShapeBlue218 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays49 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue147 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu287 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc130 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue113 views

CPU vulnerabilities - where are we now?

  • 2. CPU Vulnerabilities Where are we now? Manuel Wiesinger mwiesinger@sba-research.at
  • 3. What happened so far? 2018 Spectre V1,V2,V3 (M eltdow n) Jan.
  • 4. What happened so far? 2018 Spectre V1,V2,V3 (M eltdow n) Jan. Firstreportsofexperim entalexploitation Feb.
  • 5. What happened so far? 2018 Spectre V1,V2,V3 (M eltdow n) Jan. Firstreportsofexperim entalexploitation Feb. BranchScope M ar. Spectre V3a,Spectre V4 M ay LazyFP,SGX Spectre Jun. Spectre1.1,Spectre1.2,NetSpectre,ret2spec,SpectreRSB Jul. L1TFSGX,L1TFOS/SM M ,L1TFVM M ,Labeled Aug.
  • 6. What happened so far? 2018 Spectre V1,V2,V3 (M eltdow n) Jan. Firstreportsofexperim entalexploitation Feb. BranchScope M ar. Spectre V3a,Spectre V4 M ay LazyFP,SGX Spectre Jun. Spectre1.1,Spectre1.2,NetSpectre,ret2spec,SpectreRSB Jul. L1TFSGX,L1TFOS/SM M ,L1TFVM M ,Labeled Aug. Yetanotherone! Oct. 2
  • 7. Impact • Allows data extraction from arbitrary local memory (!) 3
  • 8. Impact • Allows data extraction from arbitrary local memory (!) • Exploitable from JavaScript environments (websites!!) 3
  • 9. Impact • Allows data extraction from arbitrary local memory (!) • Exploitable from JavaScript environments (websites!!) • Via the network (!!!) 3
  • 10. Impact • Allows data extraction from arbitrary local memory (!) • Exploitable from JavaScript environments (websites!!) • Via the network (!!!) 3
  • 11. Who can feel safe? • Nobody using computers built after 1995. ◦ Any CPU manufacturer ◦ Any operating system ◦ Any Device type • Don’t trust the memory! 4
  • 12. How can we fix CPU vulnerabilities ?
  • 13. Can software fix this?Do we need to throw all our computers away? 5
  • 14. 6
  • 15. Attack Limitations • Difficult — conventional attacks typically easier 7
  • 16. Attack Limitations • Difficult — conventional attacks typically easier • Via the network ◦ Works only under laboratory conditions ◦ Slow (15 bit / hour) 7
  • 17. Attack Limitations • Difficult — conventional attacks typically easier • Via the network ◦ Works only under laboratory conditions ◦ Slow (15 bit / hour) — Still: extract a 256 bit key in ∼ 17 hours 7
  • 18. Attack Limitations • Difficult — conventional attacks typically easier • Via the network ◦ Works only under laboratory conditions ◦ Slow (15 bit / hour) — Still: extract a 256 bit key in ∼ 17 hours • Mitigations on the way ◦ Partly already deployed via microcode and OS upgrades 7
  • 19. Fixes for CPU-Vulnerabilities Name CVE Aliases CVSS Impact Fix available Spectre V1 2017-5753 Bounds Check Bypass 5.6 Memory Microcode/Browser/OS Spectre V2 2017-5715 5.6 Memory Microcode/Compiler ? Spectre V3 2017-5754 Meltdown 5.6 Kernel memory OS Spectre V3a 2018-3640 Spectre V3a (RSRE) 5.6 Register data Microcode? Spectre V4 2018-3639 Speculative Store Bypass (SSB) 5.5 Memory OS Spectre V5 N/A ret2spec 5.5 Memory Browser? SpectreRSB N/A N/A Memory OS Lazy FP 2018-3665 5.6 Registers OS Spectre1.1 2018-3693 5.6 Kernel memory OS Spectre1.2 N/A N/A Kerslidesmory OS L1TF: SGX 2018-3615 Foreshadow (SGX) 6.4 SGX enclaves Microcode L1TF: OS/SMM 2018-3620 Foreshadow-NG (OS) 5.6 Kernel memory Microcode L1TF: VMM 2018-3646 Foreshadow-NG (VMM) 5.6 Kernel memory Microcode BranchScope 2018-9056 5.6 VM memory Microcode? SGXPectre N/A N/A SGX enclaves Microcode? NetSpectre N/A N/A Remote memory OS? TLBleed N/A N/A Microcode? 8
  • 20. We do not know what else is out there! 9
  • 22. Two Basic Terms • Side-channel ◦ Passive ◦ E.g Timing analysis, or even acoustic analysis 10
  • 23. Two Basic Terms • Side-channel ◦ Passive ◦ E.g Timing analysis, or even acoustic analysis • Covered Channel ◦ Active ◦ E.g. Trojan Horse 10
  • 26. Hyper-Threading CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
  • 27. Hyper-Threading CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
  • 28. Hyper-Threading CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
  • 29. Hyper-Threading CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 12
  • 31. Speculative Execution CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
  • 32. Speculative Execution CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE
  • 33. Speculative Execution CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE CPU-Cache
  • 34. Speculative Execution CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE CPU-Cache ? ? ? ? ? ”I try to guess, so I’m faster!”
  • 35. Speculative Execution CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE CPU-Cache ? ? ? ? ? ”I try to guess, so I’m faster!”
  • 36. Speculative Execution CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE CPU-Cache ? ? ? ? ? ”I try to guess, so I’m faster!”
  • 37. Speculative Execution CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE CPU-Cache ? ? ? ? ? ”I try to guess, so I’m faster!”
  • 38. Speculative Execution CPU Process 1 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90 Process 2 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE 0xAE CPU-Cache ? ? ? ? ? ”I try to guess, so I’m faster!” 13
  • 39. Hands on! — Meltdown
  • 40. Hands on! — Meltdown 1. Access data D at an illegal address — get’s executed speculatively 2. Make an address A of the data D — just a shl 3. Load data at address A 4. Program crashes 5. Do some tricks (e.g. fork) 6. Probe access time to A to learn if it is cached 7. Now we know that an address based on D is cached 8. Revert step 2 to get the data 14
  • 41. How can you protect yourself? 15
  • 42. How can you protect yourself? • As always: Apply Security-Updates! 15
  • 43. How can you protect yourself? • As always: Apply Security-Updates! • Don’t trust the memory! 15
  • 44. How can you protect yourself? • As always: Apply Security-Updates! • Don’t trust the memory! ◦ Overwrite critical data! 15
  • 45. How can you protect yourself? • As always: Apply Security-Updates! • Don’t trust the memory! ◦ Overwrite critical data! ◦ C: explicit_bzero() 15
  • 46. How can you protect yourself? • As always: Apply Security-Updates! • Don’t trust the memory! ◦ Overwrite critical data! ◦ C: explicit_bzero() ◦ Java: char[] 15
  • 47. How can you protect yourself? • As always: Apply Security-Updates! • Don’t trust the memory! ◦ Overwrite critical data! ◦ C: explicit_bzero() ◦ Java: char[] ◦ Python, Go, and co. (essentially all garbage collecting languages with immutable strings): No guaranteed solution. 15
  • 50. Meltdown 1 retry: 2 mov al , byte [rcx] 3 shl rax , 0xc 4 jz retry 5 mov rbx , qword [rbx + rax] 17
  • 51. Meltdown 1 retry: 2 mov al , byte [rcx] 3 shl rax , 0xc 4 jz retry 5 mov rbx , qword [rbx + rax] 18
  • 52. Meltdown 1 retry: 2 mov al, byte [rcx] 3 shl rax , 0xc 4 jz retry 5 mov rbx , qword [rbx + rax] 19
  • 53. Meltdown 1 retry: 2 mov al , byte [rcx] 3 shl rax, 0xc 4 jz retry 5 mov rbx , qword [rbx + rax] 20
  • 54. Meltdown 1 retry: 2 mov al , byte [rcx] 3 shl rax , 0xc 4 jz retry 5 mov rbx , qword [rbx + rax] 21
  • 55. Meltdown 1 retry: 2 mov al , byte [rcx] 3 shl rax , 0xc 4 jz retry 5 mov rbx , qword [rbx + rax] 22
  • 56. Meltdown 1 retry: 2 mov al , byte [rcx] 3 shl rax , 0xc 4 jz retry 5 mov rbx, qword [rbx + rax] 23