Čerstvě hacknuto: Bezpečnostní problémy současných procesorů. Rudolf Marek SYSGO s.r.o.

Podobné dokumenty
Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Virtualizace. Lukáš Krahulec, KRA556

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Vícejádrový procesor. Dvě nebo více nezávislých jader Pro plné využití. podporovat multihreading

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Systém adresace paměti

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

Architektura procesoru ARM

Architektury počítačů a procesorů

BIOS (BASIC INPUT-OUTPUT SYSTEM)

09. Memory management. ZOS 2006, L.Pešička

Architektura Intel Atom

Procesor. Procesor FPU ALU. Řadič mikrokód

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Architektura počítačů

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Princip funkce počítače

Technické prostředky počítačové techniky

Operační systémy. Přednáška 1: Úvod

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Pokročilé architektury počítačů

Zabezpečení mobilních bankovnictví

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Počítač jako prostředek řízení. Struktura a organizace počítače

Služba ve Windows. Služba (service) je program

Základní pojmy informačních technologií

Lekce 7 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Struktura a architektura počítačů (BI-SAP) 11

Architektura počítače

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

J.Breier, M.Vančo, J.Ďaďo, M.Klement, J.Michelfeit, Masarykova univerzita Fakulta informatiky

Architektury VLIW M. Skrbek a I. Šimeček

Pohled do nitra mikroprocesoru Josef Horálek

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Embedded Linux a možnosti zrychlení startu zařízení

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

VYUŽITÍ PYTHONU PRO REALTIMOVÉ ŘÍZENÍ PERIFERIÍ

Architektury paralelních počítačů II.

Přidělování paměti I Mgr. Josef Horálek

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

Pokročilé architektury počítačů

Implementace systémů HIPS: historie a současnost. Martin Dráb

Principy operačních systémů. Lekce 3: Virtualizace paměti

Emulátory. Autor: Martin Fiala. Spouštění programů a her z jiných OS nebo jiných platforem. InstallFest

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Pojem architektura je převzat z jiného oboru lidské činnosti, než počítače.

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

C2115 Praktický úvod do superpočítání

Ukázka zkouškové písemka OSY

PROCESOR. Typy procesorů

Instalace OS, nastavení systému

2 Hardware a operační systémy

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Úvod do architektur personálních počítačů

Architektury CISC a RISC, uplatnění v personálních počítačích

2.9 Vnitřní paměti. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Miroslav Tichý, tic136

Paměťový podsystém počítače

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

OPS Paralelní systémy, seznam pojmů, klasifikace

Počítač jako elektronické, Číslicové zařízení

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Implementace systémů HIPS: ve znamení 64bitových platforem. Martin Dráb

Počítačová sestava paměti, operační paměť RAM

Intel Itanium. Referát. Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky

Paměť počítače. 0 (neprochází proud) 1 (prochází proud)

Adresní mody procesoru

Přidělování zdrojů (prostředků)

Motorola Phone Tools. Začínáme

Výkonnost mikroprocesoru ovlivňují nejvíce dvě hlediska - architektura mikroprocesoru a tzv. taktovací frekvence procesoru.

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ. MEIII Paměti konstant

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Překladač a jeho struktura

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4

Digitální učební materiál

Operační systémy 2. Struktura odkládacích zařízení Přednáška číslo 10

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

CISC A RISC PROCESORY Jak pracují procesory CISC:

Identifikátor materiálu: ICT-1-08

Metody připojování periferií BI-MPP Přednáška 2

Informatika teorie. Vladimír Hradecký

Základní uspořádání pamětí MCU

Principy komunikace s adaptéry periferních zařízení (PZ)

3. Maturitní otázka PC komponenty 1. Počítačová skříň 2. Základní deska

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Zranitelnosti ovladačů jádra v praxi Martin Dráb martin.drab@ .cz

Řízení IO přenosů DMA řadičem

Transkript:

Čerstvě hacknuto: Bezpečnostní problémy současných procesorů Rudolf Marek SYSGO s.r.o.

Osnova přednášky O mně Úvod, vývoj hardware Útoky na hardware validated boot Postranní kanály Útoky využívající postranní kanály Meltdown a Spectre Principy Současný stav Mitigace pro různé procesory 2

O mně... Pracuji ve společnosti SYSGO s.r.o. R&D centrum v Praze PikeOS virtualizační realtime mikrokernel Opensource příspěvky: Linuxové Kernel Drivery pro HWMON a I2C Opensource BIOS - coreboot Hacking Pro radost z poznání hodně low level, hardware, firmware security problémy v x86 procesorech Přednáška na valné hromadě Elektrotechnické asociace Úskalí propojeného světa pro průmyslové aplikace 3

Vývoj hardware Obrovský růst komplexity hardware Hardware se navrhuje programovatelný Nejen v klasickém software (OS, aplikace) jsou chyby Chyby ve firmware Chyby v hardware 4

Hardware validated boot Hardware nespustí žádný software (bootloder) který není autentický Řetězové ověřování autenticity (chain of trust) První se spouští speciální ROM v procesoru Každý program ověří další program před spuštěním Picture from http://www.iconlabs.com/prod/sites/default/files/securebootlr.jpg 5

Hardware validated boot Použití Zamezí spouštění kódu třetích stran (vendor lock-in) Mobilní telefony, herní konzole UEFI secureboot Ověření autenticity Ověří zda je software na počítači autentický Ochrana před malware Ochrana před zásahy uživatelů, hackerů či státu 6

Aktuální problémy CVE-2018-6242 Nvidia Tegra Chyba v bootrom implementaci USB recovery režimu 24.4.2018 CVE 2017-7932 7.8.2017, chyba bootrom, projde falešný certifikát NXP/Freescale i.mx 28 i.mx 50, i.mx 53, i.mx 7Solo i.mx 7Dual Vybrid VF3xx, Vybrid VF5xx, Vybrid VF6xx, i.mx 6ULL, i.mx 6UltraLite, i.mx 6SoloLite, i.mx 6Solo, i.mx 6DualLite, i.mx 6SoloX, i.mx 6Dual, i.mx 6Quad, i.mx 6DualPlus, and i.mx 6QuadPlus 7

Ilegální - Linux na Nintendu Switch! [0] Pictures from www.fail0verflow.com 8

Útoky postranním kanálem [1] Útok využívající extra informace Spotřeba el. energie Čas Elektromagnetické vlny Zvuk Obraz Zbytková data Stav sdílených částí procesoru Závislý na implementaci Nezávislý na algoritmu 9

Jak získat tajný RSA klíč měřením proudu [2] Měřením proudu v čase okoukáme tajný klíč Pokud je v klíči bit 0, mocníme Pokud je v klíči bit 1, mocníme a násobíme By Audriusa. Recorded by student in ETH (Zurich) during system security laboratory work. - Own work, GPL, https://commons.wikimedia.org/w/index.php?curid=9762292 10

Postranní útoky s využítím cache Cache je vyrovnávací paměť rychlost RAM je malá proti rychlosti procesoru Využijeme faktu že: CPU cache je sdílená Mezi aplikacemi/jádrem operačního systému Mezi ostatními procesory Spekulativní spuštění zanechá v cache stopu Nemá kontext procesu/aplikace/jádra OS (na rozdíl od registrů procesoru) Spouští se více instrukcí do budoucnosti Trvá rozhodně déle data získat z paměti než z cache 11

Útok Meltdown CVE-2017-5754 [3] Data: Objeven v červnu 2017 Zveřejněn v lednu 2018 Narušuje Isolaci paměti mezi aplikacemi a operačním systémem Útočník dovede číst veškerou paměť v systému Získat tak všechna tajemství Vrací nás do doby DOSu Útočník nedovede Modifikovat data, pouze je číst Picture from https://spectreattack.com/meltdown.png 12

Meltdown Postižené procesory Procesory x86 Pouze procesory Intel Od Intel Pentium (1993) a novější AMD ne Procesory ARM Jádra A75 Procesory PowerPC Informace u NXP na vyžádání pod NDA 13

Meltdown Postižené platformy Operační systémy Všechny Hardwarová virtualizace Ne, průnik mezi virtuálními stroji (VM) není možný Jen v rámci jednoho virtuálního stroje 14

Meltdown Princip útoku Útočník napíše vlastní program Běží jako běžná aplikace, nemá vyšší práva Vypláchne cache Provede přístup do zakázané oblasti paměti Zakázanými daty indexuje data v poli Podle očekávání program havaruje už při prvním přístupu Ovšem díky spekulativnímu spouštění se změnil stav cache a nyní je můžeme změřit doby přístupu do našeho pole 15

Definice: HODNOTA(x): vrátí data na řádku x, sloupce A útočník vypláchne z cache řádky A10-A19 provede následující kód: r = HODNOTA(39) x = HODNOTA(10 + r) Změří dobu přístupu do buněk A10 - A19 a zjistí že nejrychleji čteme buňku A11, původní data jsou 1 16

Meltdown Proč funguje Honba za rychlejšími a výkonnějšími procesory Spekulativně se spustí i další instrukce I když se stav registrů zahodí stav cache ne Procesor Intel testuje přístupová práva příliš pozdě, až když se výsledek instrukce promítá v programovém pořadí 17

Meltdown Obrana Podstatná změna architektury operačního systému Extra isolace adresních prostorů Pokles výkonu asi o 20% 18

Meltdown varianta 3a Útok meltdown lze generalizovat Místo čtení ze zakázaných oblastí paměti čteme privilegované registry Útočník získá přístup k obsahu privilegovaných registrů Původně postihoval jen procesory ARM... 19

Meltdown 3a Strikes again! V SYSGO jsme pečlivě pracovali na záplatách pro Meltdown a Spectre... Intel would like to acknowledge and thank Zdenek Sojka, Rudolf Marek and Alex Zuepke from SYSGO AG (https://sysgo.com) for reporting CVE-2018-3640. Data: Nahlášení Intelu Leden 2018 Zveřejnění 21.5.2018 20

Meltdown 3a Postižené procesory X86 ARM označuje Meltdown jako variantu 3 Intel Cortex A72, A57, A15 PowerPC (NXP) Informace u NXP na vyžádání pod NDA 21

Útoky typu Spectre [4] Útok podobný Meltdown Využívá také cache jako postranní kanál Vyskytuje se ve dvou variantách Varianta 1, oprava software Varianta 2, oprava hardware Opět jen čtení dat jako Meltdown Problém pro aplikaci i OS Využívá predikci skoků Picture from https://spectreattack.com/spectre.png 22

Spectre varianta 1 CVE-2017-5753 [4] Stejný princip jako Meltdown Donutí aplikaci nebo OS číst jinak nepřístupná data (tajemství) if (x < array1_size) { Útok mezi virtuálními stroji y = array2[array1[x]*256]; } Mechanismus útoku Zmátne prediktor skoků Aplikace / OS přistoupí k datům co existují ale neměla být přístupná Tyto data se musí použít ještě jednou k jinému přístupu do paměti Zbytek triku funguje podobně jako Meltdown, analýzou stavu cache se dá zjistit co na zakázaném indexu x bylo, který je ovšem mimo pole array1 23

Spectre varianta 2 CVE-2017-5715 [4] Zneužívá prediktor nepřímých skoků Útok funguje mezi virtuálními stroji Útočník je schopen spustit spekulativně libovolný kód Pokud najde podobnou sekvenci jako pro variantu 1 může opět číst tajná data 24

Spectre varianta 1 a 2 Postižené procesory X86 ARM Všechny (AMD i Intel) Cortex R7, R8, A8, A9, A12, A15, A17, A57, A72, A73, A75 PowerPC Informace u NXP na vyžádání pod NDA 25

Spectre varianta 1 Mitigace Nutné zastavit spekulaci při vyhodnocování podmínky Vložením datové závislosti Instrukcí co zastaví spekulaci X86 LFENCE ARM nová instrukce CSDB 26

Spectre varianta 2 Mitigace X86 Změna kompilátoru, kompilátor generuje retpoline místo nepřímých skoků Nový mikrokód IBPB/IBSR/STIB + OS patch ARM Invalidace branch prediktoru voláním secure firmware + OS patch 27

Spectre varianta 4 CVE-2018-3639 [5] Data: Objeven? Zveřejněn 21.5.2018 Čtení dat ke kterým by neměl být přístup Útok využívá vlastnost CPU Speculative store bypass Za jistých okolností procesor dovolí čtení dat před tím než dokončí předchozí zápisy Tak můžeme donutit procesor přečíst spekulativně jinou paměť 28

Odkazy [0] https://fail0verflow.com [1] https://en.wikipedia.org/wiki/sidechannel_attack [2] https://en.wikipedia.org/wiki/power_analysis [3] https://meltdownattack.com/ [4] https://spectreattack.com/ [5] https://www.intel.com/content/www/us/en/securi ty-center/advisory/intel-sa-00115.html 29

Závěrem Pravděpodobně další útoky budou následovat Šance pro RISC-V Otevřená specifikace procesoru Otevřená implementace procesoru SYSGO PikeOS verze 4.2.1 Mitigace pro Meltdown a Spectre Držíme krok s vývojem útoků V rámci vývoje ochran útočíme na vlastní operační systém 30

Otázky? Děkuji za pozornost! rudolf. marek @ sysgo.com 31

Co je procesor Obsahuje ALU aritmeticko logickou jednotu Registry (malá pracovní paměť) Cache (vyrovnávací paměť) CC-BY-SA 3.0 Intel 80486DX2 from By Lambtron - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=37716438 32

Procesor a program Program = algoritmus + data Procesor Zpracovává instrukce, načítají se z paměti programu Provádí aritmetické operace, logické operace Načítá data z paměti do registrů a naopak Podmíněné a nepodmíněné skoky, mění tok programu Superskalární procesor Zpracovává instrukce mimo pořadí programu Ale efekty se promítají v programovém pořadí (skoro) 33

Co je cache Princip lokality a času Data blízko sebe budou potřeba Data co jsou potřeba teď budou potřeba za chvíli Velikosti cache řádově KiB, MiB Vyrovnávací pamět Maskuje rozdílou rychlost přístupu do RAM a do registrů faktor rozdílu registr / RAM cca 100x Skrytá pro programátora Různé úrovně L1, L2, L3 Pracuje s fyzickými adresami Důsledek: některá data jsou dostupná rychleji 34

Co je virtuální adresní prostor procesoru Množina všech adres Část z nich využívá aplikace Různé aplikace mají stejné adresy Aplikace se navzájem nevidí Část jádro systému Aplikace sem nemají přístup Virtuální adresy jsou překládány na fyzické Překlad zajišťuje hardware Tabulky překladu spravuje operační systém Pictures from https://en.wikipedia.org/wiki/virtual_address_space 35