Säkerhetspodcasten avs.113 - Spectre & Meltdown
Lyssna
Innehåll
I dagens avsnitt av Säkerhetspodcasten går panelen igenom sårbarheterna Spectre och Meltdown för att försöka förklara hur de fungerar, vilka som är drabbade, hur man skyddar sig och vad en potentiell impact av dem kommer bli i framtiden.
Inspelat: 2017-01-11. Längd: 01:03:16.
AI transkribering
AI försöker förstå oss… Ha överseende med galna feltranskriberingar.
1 00:00:00,000 --> 00:00:29,780
Hej och välkommen till Säkerhetspodcasten, jag som pratar heter Johan Ryberg Möller men idag har jag Peter Magnusson, Peter, Mattias Idage, Skål och Godnatt, Rickard Bordfors, as always, och Jesper Larsson, hallå hallå hallå, vi är sponsrade idag av Ashore, läs mer om dem på ashore.se och Bordfors Consulting som ni kan läsa mer om på bordfors.se, med två s, precis så ska du precis säga det, ja det är väl det, det finns på säkerhetspodcasten.se och på Twitter och sådär, tack.
2 00:00:30,000 --> 00:00:59,980
Säkerhetspodcasten tror jag vet det, sakpodcasten tror jag var helt, det stämmer bra, vi samlade idag för att diskutera inte bara en sårbarhet utan typ tre, fyra, hur många är det om man räknar varianterna, två eller tre beroende på hur man räknar, två till namnen och tre till CV’erna, det vill säga Spectre och Meltdown, det är ändå gott att 2018 börjar gott, tar av såhär, sätter standarden på det här,
3 00:01:00,000 --> 00:01:28,600
det är ju inte sådär så att det börjar lite lugnt och fint, nej nej, tredje januari så smällde det till på riktigt, när Googles Project Zero publicerade bloggposten och även sajterna då, Meltdownattack.com eller Orga med sånt där, och Spectreattack.com, det började ju bli lite såhär vibbar på Twitter där folk tittade på, när alla OS-patcharna kom, ja när Linux-patcharna kom, för det första att de tyckte att
4 00:01:30,000 --> 00:01:59,760
de här patcharna sänker prestandan och typ Tordvalls är inte arg och försöker inte stoppa dem så att då var det såhär, det är nog allvarligt, det finns någonting, någon vet någonting, there is something rotten here in the state of Denmark, de la ju på flaggan Architecture Process Table Isolation eller någonting sådär och så var det på CPU efter CPU efter CPU
5 00:02:00,000 --> 00:02:02,460
och så har det listat att de behöver isolering.
6 00:02:03,420 --> 00:02:10,840
Jag läste någon mitigering också, det var någon som snabbt hade slängt ihop den CVN så stod det bara, byt processor-arkitektur.
7 00:02:12,300 --> 00:02:20,500
Men det var US-computer-cert, ja det var det det var, jag skrattar gott, power-PC eller va? Nej, det är inte ens det.
8 00:02:21,180 --> 00:02:26,820
Men ska vi börja i början, vad är då Spectre och Meltdown för någonting?
9 00:02:26,820 --> 00:02:29,680
Ska vi ta dem var för sig till att börja med?
10 00:02:30,000 --> 00:02:36,840
Jag tycker nästan, om vi kan klumpa ihop det och förenkla det extremt mycket så att vi säger ungefär vad det är och sen kan vi ju bryta ner dem igen i taget.
11 00:02:36,840 --> 00:02:39,840
Är det liksom Spectre-variant 1, 2, 3?
12 00:02:39,840 --> 00:02:46,380
Ja jag tycker vi tar det sen, först klumpar vi ihop dem, på tillräckligt hög nivå så ser de likadana ut ungefär.
13 00:02:46,380 --> 00:02:50,380
Tänkte jag att vi kunde bestämma innan vi började spela in.
14 00:02:50,380 --> 00:02:53,120
Men det är informationsläcka.
15 00:02:53,120 --> 00:02:55,120
Informationsläcka säger du?
16 00:02:55,120 --> 00:02:56,620
Ja.
17 00:02:56,620 --> 00:02:57,460
Det kan jag ju definitivt säga.
18 00:02:57,460 --> 00:02:58,180
Det vill säga att det finns någonting som du får börja med.
19 00:02:58,180 --> 00:02:58,580
Det kan jag ju definitivt säga att det finns någonting som du får börja med.
20 00:02:58,580 --> 00:02:59,180
Det kan jag ju definitivt säga att det finns någonting som du får börja med.
21 00:02:59,180 --> 00:02:59,680
Det kan jag ju definitivt säga att det finns någonting som du får börja med.
22 00:02:59,680 --> 00:03:00,180
Det kan jag ju definitivt säga att det finns någonting som du får börja med.
23 00:03:00,180 --> 00:03:04,640
Någonting som du får veta, som du inte borde få veta om du är den onda som vill veta något.
24 00:03:04,640 --> 00:03:05,140
Någonting som du får veta, som du inte borde få veta om du är den onda som vill veta något.
25 00:03:05,140 --> 00:03:06,440
Mm.
26 00:03:06,440 --> 00:03:08,640
Så infoläckor är ju…
27 00:03:08,640 --> 00:03:14,440
Det är ju som en del har sagt att det här är ju de coolaste säkerhetshålen på väldigt länge.
28 00:03:14,440 --> 00:03:19,760
Samtidigt så är det här, för nytt för nytt, BARA infoläckor.
29 00:03:19,760 --> 00:03:23,840
Så det är ju inte så att du pownar any vilken maskin som helst på internet med hjälp av de här attackarna.
30 00:03:23,840 --> 00:03:25,840
Du kan liksom inte ändra på någonting.
31 00:03:25,840 --> 00:03:28,660
Det är väl de goda nyheterna
32 00:03:28,660 --> 00:03:29,900
Men man kan väl säga
33 00:03:29,900 --> 00:03:33,100
I grunden så är det ju en
34 00:03:33,100 --> 00:03:35,820
Side channel attack
35 00:03:35,820 --> 00:03:37,060
Men sen så har man också
36 00:03:37,060 --> 00:03:39,600
Introducerat möjligheter
37 00:03:39,600 --> 00:03:41,380
Att få liksom götta
38 00:03:41,380 --> 00:03:42,400
I den side channel
39 00:03:42,400 --> 00:03:44,840
Genom att exploatera då
40 00:03:44,840 --> 00:03:48,820
Det som är riktigt roligt här är ju att du har
41 00:03:48,820 --> 00:03:51,320
Dels, det är ju ett antal olika grejer
42 00:03:51,320 --> 00:03:52,480
Som är ihopklumpade här nu men
43 00:03:52,480 --> 00:03:54,840
Den första grejen är ju det
44 00:03:54,840 --> 00:03:56,780
Man har ju hittat
45 00:03:56,780 --> 00:03:59,120
Lite grejer som man kan observera
46 00:03:59,120 --> 00:04:00,920
Så man får en side channel och man kan höra
47 00:04:00,920 --> 00:04:02,560
Vad som händer på ett annat ställe
48 00:04:02,560 --> 00:04:05,240
Så dels är det ju en
49 00:04:05,240 --> 00:04:06,180
Side channel läcka
50 00:04:06,180 --> 00:04:08,820
Men sen är det ju också det att man har hittat
51 00:04:08,820 --> 00:04:11,180
Kreativa sätt att forcera fram
52 00:04:11,180 --> 00:04:12,460
Den här side channel läckan
53 00:04:12,460 --> 00:04:14,840
Så att man får en side channel som
54 00:04:14,840 --> 00:04:16,460
Normalt sett inte finns där men
55 00:04:16,460 --> 00:04:19,120
Om man knuffar lite på rätt sätt
56 00:04:19,120 --> 00:04:21,320
Så får man sin informationsläcka
57 00:04:21,320 --> 00:04:22,660
Som man kan observera via en side channel
58 00:04:22,660 --> 00:04:24,600
Och då är
59 00:04:24,600 --> 00:04:26,200
Det roliga eller coola här
60 00:04:26,200 --> 00:04:29,160
Det här är inte en operativsystems
61 00:04:29,160 --> 00:04:30,620
Bug egentligen utan
62 00:04:30,620 --> 00:04:32,880
Det är typ mest
63 00:04:32,880 --> 00:04:34,040
En hårdvarubugg
64 00:04:34,040 --> 00:04:36,780
Intel har ju försökt ducka det ganska ordentligt nu
65 00:04:36,780 --> 00:04:39,320
De är väldigt noga med hur det skrivs
66 00:04:39,320 --> 00:04:40,120
Och vad som formuleras
67 00:04:40,120 --> 00:04:42,400
Så jag gissar på att de är lite smårädda för att
68 00:04:42,400 --> 00:04:43,840
Åka på ansvar på det här
69 00:04:43,840 --> 00:04:47,200
Men jag håller med definitivt, det här är ett hårdvaruproblem i grund och botten
70 00:04:47,200 --> 00:04:49,220
Samtidigt som det är ju
71 00:04:49,220 --> 00:04:51,360
Alltså funktionen
72 00:04:51,360 --> 00:04:52,800
I sig som man missbrukar
73 00:04:52,800 --> 00:04:54,600
Är ju en design feature
74 00:04:54,600 --> 00:04:55,600
För att öka bestanda
75 00:04:55,600 --> 00:04:58,540
Spekulativ execution
76 00:04:58,540 --> 00:04:59,540
Det är det vi pratar om
77 00:04:59,540 --> 00:05:01,860
Så det är ju gränsen mellan var
78 00:05:01,860 --> 00:05:04,560
Var mjukvaran
79 00:05:04,560 --> 00:05:05,880
Möter hårdvaran
80 00:05:05,880 --> 00:05:08,320
Det är där någonstans det är lite otydligt
81 00:05:08,320 --> 00:05:09,560
Vad är microcode?
82 00:05:09,740 --> 00:05:11,120
Är det hårdvara eller mjukvara?
83 00:05:11,780 --> 00:05:13,780
Jag hörde en ganska
84 00:05:13,780 --> 00:05:15,700
Extremt bra
85 00:05:15,700 --> 00:05:18,660
Förenklad, fördummad beskrivning på vad det här är
86 00:05:18,660 --> 00:05:20,760
Och då liknade de
87 00:05:20,760 --> 00:05:22,460
Ett operativsystem
88 00:05:22,460 --> 00:05:23,380
Med ett bibliotek
89 00:05:23,380 --> 00:05:25,160
Alltså minnet kan vi säga med ett bibliotek
90 00:05:25,160 --> 00:05:27,940
Och jag är då angriparen
91 00:05:27,940 --> 00:05:30,140
Så jag är en person med lånekort
92 00:05:30,140 --> 00:05:31,500
Och går in i biblioteket
93 00:05:31,500 --> 00:05:33,820
I biblioteket så finns det en hemlig avdelning
94 00:05:33,820 --> 00:05:36,840
Med speciella böcker som bara de med VIP-access får läsa
95 00:05:36,840 --> 00:05:38,280
Bakom ett sånt här draperi
96 00:05:38,280 --> 00:05:39,820
Ja, bakom låsebom
97 00:05:39,820 --> 00:05:41,760
Som brukar vara längst bak i videobutikerna
98 00:05:41,760 --> 00:05:43,380
Om ni har läst
99 00:05:43,380 --> 00:05:45,680
Harry Potter så finns det faktiskt en avdelning
100 00:05:45,680 --> 00:05:47,720
För typ secret books
101 00:05:47,720 --> 00:05:49,480
Men i alla fall
102 00:05:49,480 --> 00:05:50,740
Så går jag fram till
103 00:05:50,740 --> 00:05:53,340
Bibliotekarien, receptionsdisken
104 00:05:53,380 --> 00:05:53,880
Och så säger jag
105 00:05:53,880 --> 00:05:57,960
Hej, jag skulle vilja att du går in på
106 00:05:57,960 --> 00:06:00,480
Den speciella avdelningen
107 00:06:00,480 --> 00:06:01,200
Med hemliga böcker
108 00:06:01,200 --> 00:06:03,040
Du tar fram den första boken
109 00:06:03,040 --> 00:06:04,220
Slår upp första sidan
110 00:06:04,220 --> 00:06:06,980
Och tar första bokstaven där
111 00:06:06,980 --> 00:06:09,400
Sen vill jag att du går till den allmänna avdelningen
112 00:06:09,400 --> 00:06:11,700
Och hämtar fram en bok
113 00:06:11,700 --> 00:06:12,900
Med min favoritförfattare
114 00:06:12,900 --> 00:06:15,460
Som har en titel som börjar på den bokstaven
115 00:06:15,460 --> 00:06:16,860
Och så vill jag låna den
116 00:06:16,860 --> 00:06:18,380
Okej, säger bibliotekarien
117 00:06:18,380 --> 00:06:20,100
För hon gör ingen accesskontroll i det här läget
118 00:06:20,100 --> 00:06:22,660
Utan hon springer iväg upp till den här hemliga avdelningen
119 00:06:22,660 --> 00:06:23,360
Slår upp den här avdelningen och slår upp den här bokstaven
120 00:06:23,380 --> 00:06:24,800
Slår upp den första boken, första sidan
121 00:06:24,800 --> 00:06:26,680
Och läser första bokstaven så då råkar det vara ett C
122 00:06:26,680 --> 00:06:28,940
Sen går hon ner till normalavdelningen
123 00:06:28,940 --> 00:06:30,940
Letar upp min favoritförfattare
124 00:06:30,940 --> 00:06:33,460
Och en bok med titel som är på C
125 00:06:33,460 --> 00:06:35,140
Tar med sig den till receptionsdisken
126 00:06:35,140 --> 00:06:37,840
Och där visar jag henne mitt lånekort
127 00:06:37,840 --> 00:06:38,480
Och då säger hon
128 00:06:38,480 --> 00:06:40,520
Vänta här nu, du har ju inte rätt
129 00:06:40,520 --> 00:06:43,260
Att låna någonting
130 00:06:43,260 --> 00:06:45,380
Eller ha access ens till specialavdelningen
131 00:06:46,000 --> 00:06:48,280
Så jag avbryter den här diskussionen just nu
132 00:06:48,280 --> 00:06:49,880
Så får du komma tillbaka en annan gång
133 00:06:49,880 --> 00:06:51,600
Okej, så går jag därifrån
134 00:06:52,000 --> 00:06:53,080
Och så kommer jag tillbaka
135 00:06:53,380 --> 00:06:55,200
En halv millisekund senare och säger
136 00:06:55,200 --> 00:06:56,920
Hej, jag heter Mattias
137 00:06:56,920 --> 00:06:58,480
Jag skulle vilja låna en bok
138 00:06:58,480 --> 00:07:01,020
Min favoritförfattare heter detta
139 00:07:01,020 --> 00:07:02,420
Har du någon bok som börjar på A?
140 00:07:02,920 --> 00:07:04,960
Ja, men den ligger långt där, jag ska gå och hämta den
141 00:07:04,960 --> 00:07:05,920
Nej, det behöver du inte, skit i det
142 00:07:05,920 --> 00:07:08,100
Du har inte en bok som börjar på B?
143 00:07:08,600 --> 00:07:10,400
Ja, men den ligger långt där borta, jag ska gå och hämta den
144 00:07:10,400 --> 00:07:11,200
Nej, det behöver du inte
145 00:07:11,200 --> 00:07:12,580
Du har inte en bok som börjar på C?
146 00:07:12,700 --> 00:07:13,860
Jo, den ligger här, bra, tack
147 00:07:13,860 --> 00:07:16,260
Och då fick jag reda på att första bokstaven
148 00:07:16,260 --> 00:07:19,060
På första sidan, eller boken, första sidan
149 00:07:19,060 --> 00:07:20,060
Första bokstaven var C
150 00:07:20,060 --> 00:07:22,700
Och så gör jag det här jävligt många gånger
151 00:07:22,700 --> 00:07:24,680
Och till slut har jag innehållet i alla böcker
152 00:07:24,680 --> 00:07:25,620
I den hemliga avdelningen
153 00:07:25,620 --> 00:07:28,700
Och det här är då meltdown-sårbarheten
154 00:07:29,300 --> 00:07:29,760
Kan man säga
155 00:07:29,760 --> 00:07:32,560
Och det man gör är att det hemliga sektionen är
156 00:07:32,560 --> 00:07:34,540
Kernelminnet, eller till och med faktiskt
157 00:07:34,540 --> 00:07:37,040
Allt fysiskt minne på den datorn
158 00:07:37,040 --> 00:07:39,120
Jag ska prova detta på bibliotek nära dig
159 00:07:39,120 --> 00:07:42,160
Good luck with that
160 00:07:42,160 --> 00:07:44,340
Väldigt bra, summerat
161 00:07:44,340 --> 00:07:45,680
Jag gillar den beskrivningen också
162 00:07:45,680 --> 00:07:48,640
Den bästa beskrivningen jag har sett var på Twitter
163 00:07:48,640 --> 00:07:50,700
Den har jag också läst, väldigt rolig
164 00:07:50,700 --> 00:07:52,700
Där någon gör en ganska teknisk beskrivning
165 00:07:52,700 --> 00:07:54,940
Och sen så kommer en kille in och säger
166 00:07:54,940 --> 00:07:57,040
I’m sorry, can you put this in terms of
167 00:07:57,040 --> 00:07:58,480
Bathroom usage at a party
168 00:07:58,480 --> 00:08:01,240
Jag har inte hört det där
169 00:08:01,240 --> 00:08:02,660
Vi måste köra den
170 00:08:02,660 --> 00:08:05,060
Jag tar första varianten här
171 00:08:05,060 --> 00:08:07,100
På spektrum antar jag
172 00:08:07,100 --> 00:08:08,780
Someone falsely
173 00:08:08,780 --> 00:08:10,040
Variant one
174 00:08:10,040 --> 00:08:12,640
Someone falsely convinces Jaffar the cake he’s presenting
175 00:08:12,640 --> 00:08:14,640
In five minutes, making him want to
176 00:08:14,640 --> 00:08:15,600
Speculatively pee
177 00:08:15,600 --> 00:08:18,400
While doing so, he accidentally drops his password
178 00:08:18,400 --> 00:08:19,800
Engraved headphones in the urinal
179 00:08:19,800 --> 00:08:22,280
An attacker bruising the next urinal
180 00:08:22,700 --> 00:08:24,700
Serves this and steals the password
181 00:08:24,700 --> 00:08:26,700
Variant två
182 00:08:26,700 --> 00:08:30,240
The same, except the attacker was in a closed toilet stall
183 00:08:30,240 --> 00:08:32,240
And Jaffar the cake didn’t want to pee at all
184 00:08:32,240 --> 00:08:34,240
Variant three
185 00:08:34,240 --> 00:08:36,240
The same, except the attacker was in another bathroom
186 00:08:36,240 --> 00:08:38,240
Underbart
187 00:08:38,240 --> 00:08:40,240
Okej
188 00:08:40,240 --> 00:08:47,040
Mattias, jag tyckte det här var en väldigt bra metafor för problematiken
189 00:08:47,040 --> 00:08:52,040
För den visar ju på vad är det som händer
190 00:08:52,040 --> 00:08:54,040
Och det som man exploaterar är ju att
191 00:08:54,040 --> 00:08:56,040
Processorer
192 00:08:56,040 --> 00:08:58,040
När de kommer till någonting som är tidskrävande
193 00:08:58,040 --> 00:09:00,040
Som att gå och hämta en bok i
194 00:09:00,040 --> 00:09:02,040
Barnavdelningen till exempel
195 00:09:02,040 --> 00:09:04,040
Som är jättelångt borta
196 00:09:04,040 --> 00:09:06,040
Så tittar de
197 00:09:06,040 --> 00:09:08,040
På koden och så säger de
198 00:09:08,040 --> 00:09:10,040
Här har vi ju en
199 00:09:10,040 --> 00:09:12,040
Kanske olika vägar
200 00:09:12,040 --> 00:09:14,040
Som exekveringen kan ta
201 00:09:14,040 --> 00:09:16,040
Så försöker den ju att
202 00:09:16,040 --> 00:09:18,040
Liksom göra en
203 00:09:18,040 --> 00:09:20,040
Förutsägelse för
204 00:09:20,040 --> 00:09:22,040
Så här brukar vi göra när detta
205 00:09:22,040 --> 00:09:24,040
Om han säger jag ska inte göra detta
206 00:09:24,040 --> 00:09:26,040
Så vill han säkert att vi ska göra det här också
207 00:09:26,040 --> 00:09:28,040
Då kommer han säkert att vilja att det här ska hända
208 00:09:28,040 --> 00:09:30,040
Så då börjar man exekvera saker
209 00:09:30,040 --> 00:09:32,040
Trots att man då inte
210 00:09:32,040 --> 00:09:34,040
Egentligen vet
211 00:09:34,040 --> 00:09:36,040
Om den här exekveringsvägen
212 00:09:36,040 --> 00:09:38,040
Kommer att vara valid
213 00:09:38,040 --> 00:09:40,040
Efter den här
214 00:09:40,040 --> 00:09:42,040
De har tittat på ditt lånekort
215 00:09:42,040 --> 00:09:44,040
Men
216 00:09:44,040 --> 00:09:46,040
Det fina här då är ju att
217 00:09:46,040 --> 00:09:48,040
Man använder ju
218 00:09:48,040 --> 00:09:50,040
Tanken är ju att om det visar sig vara fel
219 00:09:50,040 --> 00:09:52,040
Exekveringsväg så ska man bara
220 00:09:52,040 --> 00:09:54,040
Discarda det och ladda tillbaks
221 00:09:54,040 --> 00:09:56,040
Registrarna och alltihopa
222 00:09:56,040 --> 00:09:58,040
Och allt är fine and dandy och det har ju ingen
223 00:09:58,040 --> 00:10:00,040
Tänkt på att det skulle kunna vara ett säkerhetsproblem
224 00:10:00,040 --> 00:10:02,040
Men det är just
225 00:10:02,040 --> 00:10:04,040
De här side channel attackerna då
226 00:10:04,040 --> 00:10:06,040
Där du kan
227 00:10:06,040 --> 00:10:08,040
Titta lite på vad hände
228 00:10:08,040 --> 00:10:10,040
I cash minnet under den här
229 00:10:10,040 --> 00:10:12,040
Tiden som
230 00:10:12,040 --> 00:10:14,040
Bibliotekarien var upptagen med
231 00:10:14,040 --> 00:10:16,040
Att springa och hämta boken
232 00:10:16,040 --> 00:10:18,040
Det är då som det liksom blir spännande
233 00:10:18,040 --> 00:10:20,040
Så att det är
234 00:10:20,040 --> 00:10:22,040
En väldigt komplex attack och
235 00:10:22,040 --> 00:10:24,040
Ja
236 00:10:24,040 --> 00:10:26,040
Vad man kan säga är att
237 00:10:26,040 --> 00:10:28,040
När man lär sig
238 00:10:28,040 --> 00:10:30,040
Processorarkitektur i
239 00:10:30,040 --> 00:10:32,040
På datoteknik
240 00:10:32,040 --> 00:10:34,040
På dagis
241 00:10:34,040 --> 00:10:36,040
Precis på dagis
242 00:10:36,040 --> 00:10:38,040
På dagis när man får lära sig processorer
243 00:10:38,040 --> 00:10:40,040
Då brukar man få lära sig den
244 00:10:40,040 --> 00:10:42,040
Enkla
245 00:10:42,040 --> 00:10:44,040
MIPS risk
246 00:10:44,040 --> 00:10:46,040
Pipelinen som är
247 00:10:46,040 --> 00:10:48,040
Ett exempel på de enklaste
248 00:10:48,040 --> 00:10:50,040
Processor pipeline som finns och då är det
249 00:10:50,040 --> 00:10:52,040
Istället för
250 00:10:52,040 --> 00:10:54,040
Att man tar en instruktion
251 00:10:54,040 --> 00:10:56,040
Och exekverar den
252 00:10:56,040 --> 00:10:58,040
För det kan du ju göra
253 00:10:58,040 --> 00:11:00,040
Du kan bygga en processor som bara är
254 00:11:00,040 --> 00:11:02,040
Ett enda pipeline steg
255 00:11:02,040 --> 00:11:04,040
Men då kommer den ju vara extremt långsam
256 00:11:04,040 --> 00:11:06,040
Och inte gå och klocka i någon hög hastighet
257 00:11:06,040 --> 00:11:08,040
Så då bygger man upp en pipeline
258 00:11:08,040 --> 00:11:10,040
Där man har man brukar säga
259 00:11:10,040 --> 00:11:12,040
Fem steg den enklaste
260 00:11:12,040 --> 00:11:14,040
Först laddar man in instruktionen
261 00:11:14,040 --> 00:11:16,040
Sen avkodar man så man förstår
262 00:11:16,040 --> 00:11:18,040
Vad man ska göra när man exekverar den
263 00:11:18,040 --> 00:11:20,040
Och sen gör man
264 00:11:20,040 --> 00:11:22,040
Laddar man
265 00:11:22,040 --> 00:11:24,040
Instruktionen ifall den har något register
266 00:11:24,040 --> 00:11:26,040
Eller minnesberoende
267 00:11:26,040 --> 00:11:28,040
Och sen exekverar man den
268 00:11:28,040 --> 00:11:30,040
Och sen skriver man ner om den resulterar i
269 00:11:30,040 --> 00:11:32,040
Minneskrivning och så håller man på
270 00:11:32,040 --> 00:11:34,040
Dessutom och trycker data
271 00:11:34,040 --> 00:11:36,040
Fram och tillbaks
272 00:11:36,040 --> 00:11:38,040
I pipelinen för att
273 00:11:38,040 --> 00:11:40,040
Om det är så att
274 00:11:40,040 --> 00:11:42,040
Om det är så att
275 00:11:42,040 --> 00:11:44,040
Om instruktion
276 00:11:44,040 --> 00:11:46,040
10
277 00:11:46,040 --> 00:11:48,040
Uppdaterar
278 00:11:48,040 --> 00:11:50,040
Ett register som används i instruktion
279 00:11:50,040 --> 00:11:52,040
11 så måste man ju då
280 00:11:52,040 --> 00:11:54,040
Trycka det här värdet
281 00:11:54,040 --> 00:11:56,040
Liksom
282 00:11:56,040 --> 00:11:58,040
Bakåt i pipelinen
283 00:11:58,040 --> 00:12:00,040
Och det som är svårt när man gör sådant här
284 00:12:00,040 --> 00:12:02,040
Det är ju det att
285 00:12:02,040 --> 00:12:04,040
Man kan ju välja att pausa varenda gång man kommer till ett konstigt ställe
286 00:12:04,040 --> 00:12:06,040
Så att pipelinen
287 00:12:06,040 --> 00:12:08,040
Nästan alltid står och pausar
288 00:12:08,040 --> 00:12:10,040
Och väntar på att något annat blir klart
289 00:12:10,040 --> 00:12:12,040
Men då får du ju typ ingen prestanda
290 00:12:12,040 --> 00:12:14,040
Överhuvudtaget
291 00:12:14,040 --> 00:12:16,040
Utan istället så har man då hittat smarta sätt
292 00:12:16,040 --> 00:12:18,040
Att hela tiden försöka exekvera någonting
293 00:12:18,040 --> 00:12:20,040
Samtidigt och man
294 00:12:20,040 --> 00:12:22,040
Har också byggt upp det då mycket mer
295 00:12:22,040 --> 00:12:24,040
Komplexa, man har längre pipelines
296 00:12:24,040 --> 00:12:26,040
Och man har parallella pipelines
297 00:12:26,040 --> 00:12:28,040
Så istället för att det är
298 00:12:28,040 --> 00:12:30,040
Fem instruktioner som exekverar
299 00:12:30,040 --> 00:12:32,040
Samtidigt så är det många många fler
300 00:12:32,040 --> 00:12:34,040
Som exekverar samtidigt per
301 00:12:34,040 --> 00:12:36,040
Processor core
302 00:12:36,040 --> 00:12:38,040
Och vips då så har man byggt den här
303 00:12:38,040 --> 00:12:40,040
Jättekomplexa logiken för
304 00:12:40,040 --> 00:12:42,040
Att man har liksom en ström
305 00:12:42,040 --> 00:12:44,040
Med massa instruktioner som exekverar samtidigt
306 00:12:44,040 --> 00:12:46,040
Och då är till exempel
307 00:12:46,040 --> 00:12:48,040
Branchar
308 00:12:48,040 --> 00:12:50,040
Eller syskols och annat
309 00:12:50,040 --> 00:12:52,040
Där det sker någon säkerhetsgrej, de är ju jobbiga då
310 00:12:52,040 --> 00:12:54,040
För att här ser vi ju plötsligt
311 00:12:54,040 --> 00:12:56,040
Att här vore det ju bäst
312 00:12:56,040 --> 00:12:58,040
Om man stannade och liksom
313 00:12:58,040 --> 00:13:00,040
För det är ju det det här är egentligen
314 00:13:00,040 --> 00:13:02,040
Det här är ju informationsläckage
315 00:13:02,040 --> 00:13:04,040
Av dumhet, av känslig data
316 00:13:04,040 --> 00:13:06,040
Det är ju det det är
317 00:13:06,040 --> 00:13:08,040
Om någonting
318 00:13:08,040 --> 00:13:10,040
Det är ju inte en sån här klassisk
319 00:13:10,040 --> 00:13:12,040
Exploit kedja utan
320 00:13:12,040 --> 00:13:14,040
Det är ju liksom läckage mer
321 00:13:14,040 --> 00:13:16,040
Du kan använda det för att sno lösenord
322 00:13:16,040 --> 00:13:18,040
Och kryptonyklar och annat bra
323 00:13:18,040 --> 00:13:20,040
Alltid minne
324 00:13:20,040 --> 00:13:22,040
Det är ju en liten knappa där
325 00:13:22,040 --> 00:13:24,040
Till all sån här datakunskap
326 00:13:24,040 --> 00:13:26,040
Som man lär sig i CSP-kurserna och sånt liksom
327 00:13:26,040 --> 00:13:28,040
Med time of use, time of check
328 00:13:28,040 --> 00:13:30,040
För det här är ju något jätteförvirrande
329 00:13:30,040 --> 00:13:32,040
För att time of use inträffar helt magiskt
330 00:13:32,040 --> 00:13:34,040
Innan
331 00:13:34,040 --> 00:13:36,040
Före time of check
332 00:13:36,040 --> 00:13:38,040
Och sen försöker man såhär backa
333 00:13:38,040 --> 00:13:40,040
Ja men här gick fel då
334 00:13:40,040 --> 00:13:42,040
Backar vi tillbaka exekveringsflödet
335 00:13:42,040 --> 00:13:44,040
Vad är normal, alltså hur många instruktioner
336 00:13:44,040 --> 00:13:46,040
I förväg kör en modern CPU
337 00:13:46,040 --> 00:13:48,040
För jag såg siffror i de här papprena
338 00:13:48,040 --> 00:13:50,040
200 enkla instruktioner
339 00:13:50,040 --> 00:13:52,040
Skulle kunna vara spekulativ
340 00:13:52,040 --> 00:13:54,040
Exekvering i 200 enkla instruktioner
341 00:13:54,040 --> 00:13:56,040
Det låter ju sjukt mycket
342 00:13:56,040 --> 00:13:58,040
Jo men har du ett IO-call
343 00:13:58,040 --> 00:14:00,040
Så idlar ju processen i säkert
344 00:14:00,040 --> 00:14:02,040
200 klockcykler annars
345 00:14:02,040 --> 00:14:04,040
Jo men jag fattar det som att bara hämta minnes
346 00:14:04,040 --> 00:14:06,040
På en modern processor och ta 200 cykler ungefär
347 00:14:06,040 --> 00:14:08,040
Men återigen, är det så lång pipeline
348 00:14:08,040 --> 00:14:10,040
Den är verkligen att du kan
349 00:14:10,040 --> 00:14:12,040
Förexekvera 200
350 00:14:12,040 --> 00:14:14,040
Nu har jag absolut inte
351 00:14:14,040 --> 00:14:16,040
Någon korrekt, akkurat
352 00:14:16,040 --> 00:14:18,040
Information i mitt huvud men
353 00:14:18,040 --> 00:14:20,040
Vilket rykte när
354 00:14:20,040 --> 00:14:22,040
De här
355 00:14:22,040 --> 00:14:24,040
Pension 4
356 00:14:24,040 --> 00:14:26,040
När de försökte
357 00:14:26,040 --> 00:14:28,040
De försökte slå 4 GHz
358 00:14:28,040 --> 00:14:30,040
Gränsen och så
359 00:14:30,040 --> 00:14:32,040
Så påstod
360 00:14:32,040 --> 00:14:34,040
Rykten på internet i vart fall att
361 00:14:34,040 --> 00:14:36,040
Pipelinen där
362 00:14:36,040 --> 00:14:38,040
Det var inte längre en 5 stegs pipeline
363 00:14:38,040 --> 00:14:40,040
Utan att den skulle vara bort mot
364 00:14:40,040 --> 00:14:42,040
21 steg lång den
365 00:14:42,040 --> 00:14:44,040
Pipelinen då och dessutom
366 00:14:44,040 --> 00:14:46,040
Då så är den superskadad så att
367 00:14:46,040 --> 00:14:48,040
Det är liksom flera parallella
368 00:14:48,040 --> 00:14:50,040
Pipelines också
369 00:14:50,040 --> 00:14:52,040
Och säga att om det är sant
370 00:14:52,040 --> 00:14:54,040
Att det var 21 stycken vilket vi kan lämna
371 00:14:54,040 --> 00:14:56,040
Definitivt öppet för diskussion
372 00:14:56,040 --> 00:14:58,040
För att det är
373 00:14:58,040 --> 00:15:00,040
Men säga att den är lång pipeline
374 00:15:00,040 --> 00:15:02,040
Och man har ett antal sådana paralleller
375 00:15:02,040 --> 00:15:04,040
Jag menar då kanske det inte är
376 00:15:04,040 --> 00:15:06,040
Orimligt
377 00:15:06,040 --> 00:15:08,040
Jag fattar det som att de refererade
378 00:15:08,040 --> 00:15:10,040
Jag tror det var framförallt till Specter-pappret
379 00:15:10,040 --> 00:15:12,040
Så refererade de till en annan
380 00:15:12,040 --> 00:15:14,040
Ett annat papper som hade upptäckt
381 00:15:14,040 --> 00:15:16,040
Om det var 188 upp till 200
382 00:15:16,040 --> 00:15:18,040
Som de kunde köra
383 00:15:18,040 --> 00:15:20,040
Och de hade själva observerat i den här
384 00:15:20,040 --> 00:15:22,040
Ärenden också
385 00:15:22,040 --> 00:15:24,040
Det låter som sagt sjukt mycket
386 00:15:24,040 --> 00:15:26,040
Jag vet inte om det är per kår
387 00:15:26,040 --> 00:15:28,040
Eller om det var på en maskin med flera kår
388 00:15:28,040 --> 00:15:30,040
Som hade observerat det
389 00:15:30,040 --> 00:15:32,040
Det vet inte jag heller
390 00:15:32,040 --> 00:15:34,040
Men jag har för mig att jag läste någonstans
391 00:15:34,040 --> 00:15:36,040
Att det var vissa grejer
392 00:15:36,040 --> 00:15:38,040
Jo, Branch
393 00:15:38,040 --> 00:15:40,040
BRT
394 00:15:40,040 --> 00:15:42,040
Någon register
395 00:15:42,040 --> 00:15:44,040
BTR
396 00:15:44,040 --> 00:15:46,040
Branch Target Buffer tror jag den heter
397 00:15:46,040 --> 00:15:48,040
Den tror jag var iallafall per kår
398 00:15:48,040 --> 00:15:50,040
Så den gick inte att lura
399 00:15:50,040 --> 00:15:52,040
Över kårgränserna
400 00:15:52,040 --> 00:15:54,040
Fick jag för mig iallafall
401 00:15:56,040 --> 00:15:58,040
Nu har vi skimmat över det här
402 00:15:58,040 --> 00:16:00,040
Ska vi gräva djupare?
403 00:16:00,040 --> 00:16:02,040
Tycker jag
404 00:16:02,040 --> 00:16:04,040
Ska vi börja med Meltan
405 00:16:04,040 --> 00:16:06,040
Som jag tycker är den som är enklast
406 00:16:06,040 --> 00:16:08,040
Att fatta tycker jag
407 00:16:08,040 --> 00:16:10,040
Där finns även en mitigation som man kan förstå
408 00:16:10,040 --> 00:16:12,040
Enklare att utnyttja och enklare att mitigera
409 00:16:12,040 --> 00:16:14,040
Ja och de
410 00:16:14,040 --> 00:16:16,040
Tell only säger de ju också
411 00:16:16,040 --> 00:16:18,040
Även om läser du pappret
412 00:16:18,040 --> 00:16:20,040
Jury is still out skulle jag säga
413 00:16:20,040 --> 00:16:22,040
Läser du pappret så säger de mer eller mindre
414 00:16:22,040 --> 00:16:24,040
Det borde funka men vi har inte fått det att funka
415 00:16:24,040 --> 00:16:26,040
Nej, AMD är ju supersnabba
416 00:16:26,040 --> 00:16:28,040
Och pekar stenhårt
417 00:16:28,040 --> 00:16:30,040
De sa inte att
418 00:16:30,040 --> 00:16:32,040
Den inte finns
419 00:16:32,040 --> 00:16:34,040
Men någon sa att det är
420 00:16:34,040 --> 00:16:36,040
Minimal risk
421 00:16:36,040 --> 00:16:38,040
Någonting säger man
422 00:16:38,040 --> 00:16:40,040
Men de sa till och med
423 00:16:40,040 --> 00:16:42,040
Vi är nog såbara men vi vet inte riktigt
424 00:16:42,040 --> 00:16:44,040
Hur man gör
425 00:16:44,040 --> 00:16:46,040
Vi har inte riktigt
426 00:16:46,040 --> 00:16:48,040
Vi agerar som apel
427 00:16:48,040 --> 00:16:50,040
Men här kör man ju då som du säger
428 00:16:50,040 --> 00:16:52,040
Alltså de säger
429 00:16:52,040 --> 00:16:54,040
Out of order execution
430 00:16:54,040 --> 00:16:56,040
Men och så säger de i spekterpappret
431 00:16:56,040 --> 00:16:58,040
Så kallar de det istället för ett spekulativ
432 00:16:58,040 --> 00:17:00,040
Execution men jag tycker att det är typ
433 00:17:00,040 --> 00:17:02,040
Samma sak
434 00:17:02,040 --> 00:17:04,040
Lite mer side channel fil är det inte det
435 00:17:04,040 --> 00:17:06,040
Spekulativ
436 00:17:06,040 --> 00:17:08,040
Spekulativ
437 00:17:08,040 --> 00:17:10,040
Execuering är ju ett specialfall av
438 00:17:10,040 --> 00:17:12,040
Out of order
439 00:17:12,040 --> 00:17:14,040
Spekulativ är
440 00:17:14,040 --> 00:17:16,040
Du exekverar det i förväg
441 00:17:16,040 --> 00:17:18,040
Det brukar vara branch specifikt
442 00:17:18,040 --> 00:17:20,040
Så du måste dessutom
443 00:17:20,040 --> 00:17:22,040
Fatta en branch prediction beslut
444 00:17:22,040 --> 00:17:24,040
Men i vilket fall som helst
445 00:17:24,040 --> 00:17:26,040
Så är det ju den här pipelining grejen
446 00:17:26,040 --> 00:17:28,040
Du exekverar grejerna innan du egentligen
447 00:17:28,040 --> 00:17:30,040
Ska göra det som lite förberedande
448 00:17:30,040 --> 00:17:32,040
Och om du då gjorde ett felaktigt beslut
449 00:17:32,040 --> 00:17:34,040
Tidigare och säger ah shit jag skulle nog aldrig gjort det här
450 00:17:34,040 --> 00:17:36,040
För branching åt andra hållet
451 00:17:36,040 --> 00:17:38,040
Eller det visade sig att kerneln sa att du
452 00:17:38,040 --> 00:17:40,040
Fick inte läsa det här
453 00:17:40,040 --> 00:17:42,040
Då skickar jag alltihopa och säger nej det hände inte
454 00:17:42,040 --> 00:17:44,040
Finns det skönt
455 00:17:44,040 --> 00:17:46,040
Om det går igenom så är det supersnabbt
456 00:17:46,040 --> 00:17:48,040
Men så lämnar man då lite spår
457 00:17:48,040 --> 00:17:50,040
Efter sig genom att man
458 00:17:50,040 --> 00:17:52,040
Läser in cache och
459 00:17:52,040 --> 00:17:54,040
Cachen backar inte
460 00:17:54,040 --> 00:17:56,040
Det var väl det som var det coola
461 00:17:56,040 --> 00:17:58,040
Men du kan ju cache flasha och det är väl det som är grejen
462 00:17:58,040 --> 00:18:00,040
Just att du flashar den innan
463 00:18:00,040 --> 00:18:02,040
Du försöker lura den
464 00:18:02,040 --> 00:18:04,040
Du kör väl det här i
465 00:18:04,040 --> 00:18:06,040
Ja det var lite olika beroende på attacken men det är sant
466 00:18:06,040 --> 00:18:08,040
Du ser till att ha ett known state
467 00:18:08,040 --> 00:18:10,040
På din cache och sen
468 00:18:10,040 --> 00:18:12,040
Så ber du då som sagt
469 00:18:12,040 --> 00:18:14,040
Bibliotekarien
470 00:18:14,040 --> 00:18:16,040
Lite beroende på vad som finns på
471 00:18:16,040 --> 00:18:18,040
Kernel minnesposition x
472 00:18:18,040 --> 00:18:20,040
Så ska du hämta olika saker
473 00:18:20,040 --> 00:18:22,040
I minnet och då kan du sen
474 00:18:22,040 --> 00:18:24,040
I cachen se vad var det nu
475 00:18:24,040 --> 00:18:26,040
Som hämtades egentligen
476 00:18:26,040 --> 00:18:28,040
Som de använde i exemplen
477 00:18:28,040 --> 00:18:30,040
Typ 4096 gånger
478 00:18:30,040 --> 00:18:32,040
Byte värdet på den här minnespositionen
479 00:18:32,040 --> 00:18:34,040
Så blir det ju helt olika
480 00:18:34,040 --> 00:18:36,040
Minnesblock man hämtar
481 00:18:36,040 --> 00:18:38,040
Står det fyra så är det
482 00:18:38,040 --> 00:18:40,040
Fyra gånger 4096 står det tio
483 00:18:40,040 --> 00:18:42,040
Så det blir helt olika minnesblock som kommer läsas in
484 00:18:42,040 --> 00:18:44,040
Och det kan man då direkt skitera efteråt
485 00:18:44,040 --> 00:18:46,040
Genom att kolla hur långt tog det
486 00:18:46,040 --> 00:18:48,040
Att läsa in en minnesposition
487 00:18:48,040 --> 00:18:50,040
Från den adressen
488 00:18:50,040 --> 00:18:52,040
Jo det gick lång tid, ja då var det inte den
489 00:18:52,040 --> 00:18:54,040
Den här då, ja det gick lång tid
490 00:18:54,040 --> 00:18:56,040
Den då, det tog kort tid
491 00:18:56,040 --> 00:18:58,040
Ja den var det då som styrde den här inläsningen
492 00:18:58,040 --> 00:19:00,040
Och så gör man det jävligt många gånger
493 00:19:00,040 --> 00:19:02,040
Ja de hade väl fått ut någon av de här
494 00:19:02,040 --> 00:19:04,040
Attackerna de väl fått ut
495 00:19:04,040 --> 00:19:06,040
Att de ändå kunde läsa i 100 kilobyte per sekund
496 00:19:06,040 --> 00:19:08,040
500 kilobyte per sekund
497 00:19:08,040 --> 00:19:10,040
Oj
498 00:19:10,040 --> 00:19:12,040
Men det var ju specialfallet att det var en Intel
499 00:19:12,040 --> 00:19:14,040
Hette den TSX eller något där
500 00:19:14,040 --> 00:19:16,040
För att det som var bra med det
501 00:19:16,040 --> 00:19:18,040
Det var att
502 00:19:18,040 --> 00:19:20,040
Då slapp de jobba runt den här
503 00:19:20,040 --> 00:19:22,040
För typiskt den här läsningen
504 00:19:22,040 --> 00:19:24,040
Som de försöker göra i Meltanfallet
505 00:19:24,040 --> 00:19:26,040
Den är ju illegal
506 00:19:26,040 --> 00:19:28,040
Så den blir ju segmentation fault
507 00:19:28,040 --> 00:19:30,040
Och då måste du adressera det på något sätt
508 00:19:30,040 --> 00:19:32,040
För annars får du en jävla massa kraschar
509 00:19:32,040 --> 00:19:34,040
Så en strategi var ju då att ja då spånar du ett child
510 00:19:34,040 --> 00:19:36,040
Som gärna får krascha
511 00:19:36,040 --> 00:19:38,040
Och sen ligger parent kvar och gör den här
512 00:19:38,040 --> 00:19:40,040
Cash testningen efteråt
513 00:19:40,040 --> 00:19:42,040
Eller så
514 00:19:42,040 --> 00:19:44,040
Registrerar du en lyssnare som alltså fångar
515 00:19:44,040 --> 00:19:46,040
Det här exceptionet
516 00:19:46,040 --> 00:19:48,040
Eller så gör du en
517 00:19:48,040 --> 00:19:50,040
TSX tror jag det var som på något sätt
518 00:19:50,040 --> 00:19:52,040
Magiskt löste
519 00:19:52,040 --> 00:19:54,040
Du säger till just det vi går in
520 00:19:54,040 --> 00:19:56,040
Just det vi går in i transaktionsläge nu
521 00:19:56,040 --> 00:19:58,040
Säger du
522 00:19:58,040 --> 00:20:00,040
Gör en instruktion som säger nu börjar vi en transaktion
523 00:20:00,040 --> 00:20:02,040
Och då när du får
524 00:20:02,040 --> 00:20:04,040
Segmenterings felet sen
525 00:20:04,040 --> 00:20:06,040
Så kan du säga nej vi roller tillbaka hela transaktionen
526 00:20:06,040 --> 00:20:08,040
Så slipper du göra något mer och det går superbra
527 00:20:08,040 --> 00:20:10,040
Superfort att göra det tydligen
528 00:20:10,040 --> 00:20:12,040
Så då fick du uppresande ordentligt
529 00:20:12,040 --> 00:20:14,040
Så det var det som var partytrycken där
530 00:20:14,040 --> 00:20:16,040
Utan TSX tror jag det hette TSX
531 00:20:16,040 --> 00:20:18,040
Det hette TOX och så var det någon bok som sa till
532 00:20:18,040 --> 00:20:20,040
Vi säger TSX
533 00:20:20,040 --> 00:20:22,040
Utan den så var du ner i 100 någonting kW
534 00:20:22,040 --> 00:20:24,040
Och du når ju då som sagt
535 00:20:24,040 --> 00:20:26,040
I Meltdown fallet
536 00:20:26,040 --> 00:20:28,040
När det gäller i alla fall Linux
537 00:20:28,040 --> 00:20:30,040
Och OSX så når du hela
538 00:20:30,040 --> 00:20:32,040
Fysiska minnet
539 00:20:32,040 --> 00:20:34,040
För att av någon anledning som inte jag fattade innan
540 00:20:34,040 --> 00:20:36,040
Så är det så att i valje
541 00:20:36,040 --> 00:20:38,040
User
542 00:20:38,040 --> 00:20:40,040
Process vy av minnet
543 00:20:40,040 --> 00:20:42,040
Så finns förutom då
544 00:20:42,040 --> 00:20:44,040
Det virtuella minnet som den här
545 00:20:44,040 --> 00:20:46,040
Processen typiskt ska nå
546 00:20:46,040 --> 00:20:48,040
Så finns kernel
547 00:20:48,040 --> 00:20:50,040
Och kernel mappar dessutom i sig
548 00:20:50,040 --> 00:20:52,040
Hela fysiska minnet
549 00:20:52,040 --> 00:20:54,040
Och det är då typiskt inte ett problem
550 00:20:54,040 --> 00:20:56,040
För att då har man den här
551 00:20:56,040 --> 00:20:58,040
Privilege biten
552 00:20:58,040 --> 00:21:00,040
Så att när du går in i kernel mode
553 00:21:00,040 --> 00:21:02,040
För då får du läsa
554 00:21:02,040 --> 00:21:04,040
Kernel minnet och fysiska minnet
555 00:21:04,040 --> 00:21:06,040
Det är ju det här som är det centrala
556 00:21:06,040 --> 00:21:08,040
I den
557 00:21:08,040 --> 00:21:10,040
I Meltdown
558 00:21:10,040 --> 00:21:12,040
I Meltdown är att
559 00:21:12,040 --> 00:21:14,040
Det som man kan kringgå i Meltdown
560 00:21:14,040 --> 00:21:16,040
Är accesskontrollen
561 00:21:16,040 --> 00:21:18,040
På virtuellt minne
562 00:21:18,040 --> 00:21:20,040
Så att det minnet som bara
563 00:21:20,040 --> 00:21:22,040
Är tillgängligt från
564 00:21:22,040 --> 00:21:24,040
Supervisor mode eller ring 0
565 00:21:24,040 --> 00:21:26,040
Eller vad tusen heter
566 00:21:26,040 --> 00:21:28,040
Blir indirekt även tillgängligt för
567 00:21:28,040 --> 00:21:30,040
De andra ringarna
568 00:21:30,040 --> 00:21:32,040
Men det är fortfarande virtuellt minne man läser
569 00:21:32,040 --> 00:21:34,040
Men det är det
570 00:21:34,040 --> 00:21:36,040
Det mappas till fysiskt minne
571 00:21:36,040 --> 00:21:38,040
Ja men det och grejen är att
572 00:21:38,040 --> 00:21:40,040
Både kernel
573 00:21:40,040 --> 00:21:42,040
Och ens egen process
574 00:21:42,040 --> 00:21:44,040
Är i samma adressrymd
575 00:21:44,040 --> 00:21:46,040
Samma page table
576 00:21:46,040 --> 00:21:48,040
Och det är väl därför
577 00:21:48,040 --> 00:21:50,040
Dessutom så den här patchen då
578 00:21:50,040 --> 00:21:52,040
Som heter då
579 00:21:52,040 --> 00:21:54,040
Kernel
580 00:21:54,040 --> 00:21:56,040
Page table isolation
581 00:21:56,040 --> 00:21:58,040
Kajser
582 00:21:58,040 --> 00:22:00,040
Visst låter det som en tysk
583 00:22:00,040 --> 00:22:02,040
Kajser tjuser
584 00:22:02,040 --> 00:22:04,040
De är väl österrikare
585 00:22:04,040 --> 00:22:06,040
De är väl österrikare tror jag
586 00:22:06,040 --> 00:22:08,040
Och kajsersmaren
587 00:22:08,040 --> 00:22:10,040
Som är en sån här äppelpajgrej
588 00:22:10,040 --> 00:22:12,040
Med russin och grejer
589 00:22:12,040 --> 00:22:14,040
Det låter ju gött
590 00:22:14,040 --> 00:22:16,040
Men jag har inte åkt skidor jag är österrikare
591 00:22:16,040 --> 00:22:18,040
Då är det apfelstrudel och kajsersmaren
592 00:22:18,040 --> 00:22:20,040
Apfelstrudel är gott
593 00:22:20,040 --> 00:22:22,040
Det kajser gör då
594 00:22:22,040 --> 00:22:24,040
Kernel page table isolation
595 00:22:24,040 --> 00:22:26,040
Det vill säga den ser till att
596 00:22:26,040 --> 00:22:28,040
Nej nu slutar vi med det där
597 00:22:28,040 --> 00:22:30,040
Och ha user process
598 00:22:30,040 --> 00:22:32,040
Och kernel i samma page table
599 00:22:32,040 --> 00:22:34,040
Utan kernel får en egen page table
600 00:22:34,040 --> 00:22:36,040
Och då kan man inte läsa över
601 00:22:36,040 --> 00:22:38,040
Den här gränsen
602 00:22:38,040 --> 00:22:40,040
Och det här var faktiskt någonting som jag
603 00:22:40,040 --> 00:22:42,040
Jag har ju vetat att page tables har funnits
604 00:22:42,040 --> 00:22:44,040
Men jag har inte riktigt fattat hur det har funkat förut
605 00:22:44,040 --> 00:22:46,040
Så det fick jag ju läsa på lite nu
606 00:22:46,040 --> 00:22:48,040
Är det inte så att det är en
607 00:22:48,040 --> 00:22:50,040
Det är register i CPUn va
608 00:22:50,040 --> 00:22:52,040
Som styr vilken page table det är just nu
609 00:22:52,040 --> 00:22:54,040
Ja typ
610 00:22:54,040 --> 00:22:56,040
Det är det sista
611 00:22:56,040 --> 00:22:58,040
Jag tänkte på apfelstrudel
612 00:22:58,040 --> 00:23:00,040
Ja eller hur
613 00:23:00,040 --> 00:23:02,040
Men det är det jag menar
614 00:23:02,040 --> 00:23:04,040
Att du kan inte läsa
615 00:23:04,040 --> 00:23:06,040
Över en page table gräns
616 00:23:06,040 --> 00:23:08,040
Du kan bara läsa
617 00:23:08,040 --> 00:23:10,040
Alltså supervise sätter ju upp
618 00:23:10,040 --> 00:23:12,040
Vad det virutella minnet för den processen är
619 00:23:12,040 --> 00:23:14,040
Och då
620 00:23:14,040 --> 00:23:16,040
Då kan du läsa
621 00:23:16,040 --> 00:23:18,040
Gör du minnesaccess som ligger
622 00:23:18,040 --> 00:23:20,040
Inom din page table
623 00:23:20,040 --> 00:23:22,040
Och
624 00:23:22,040 --> 00:23:24,040
Om du får lov
625 00:23:24,040 --> 00:23:26,040
Att göra den så går allting bra
626 00:23:26,040 --> 00:23:28,040
Sen kan du också få illegalt
627 00:23:28,040 --> 00:23:30,040
Att du gör en
628 00:23:30,040 --> 00:23:32,040
Access som page table
629 00:23:32,040 --> 00:23:34,040
Säger inte är tillåten
630 00:23:34,040 --> 00:23:36,040
Och det tredje fallet är
631 00:23:36,040 --> 00:23:38,040
Du gör en access till någonting
632 00:23:38,040 --> 00:23:40,040
Som inte är med i page table alls
633 00:23:40,040 --> 00:23:42,040
Och då gör man vad som kallas
634 00:23:42,040 --> 00:23:44,040
General page fault
635 00:23:44,040 --> 00:23:46,040
Då man lämnar över till operativsystemet
636 00:23:46,040 --> 00:23:48,040
Den här processen har gjort en
637 00:23:48,040 --> 00:23:50,040
Minnesaccess jag inte vet vad jag ska göra med den
638 00:23:50,040 --> 00:23:52,040
Och då får operativsystemet
639 00:23:52,040 --> 00:23:54,040
Välja om den ska krascha processen
640 00:23:54,040 --> 00:23:56,040
Eller om den ska ändra
641 00:23:56,040 --> 00:23:58,040
Hur den virutella minnet ser ut
642 00:23:58,040 --> 00:24:00,040
Och mappa in ett minne som kanske låg nere på
643 00:24:00,040 --> 00:24:02,040
Hårddisken eller något just för stunden
644 00:24:02,040 --> 00:24:04,040
Ja uppenbarligen så behöver jag läsa in
645 00:24:04,040 --> 00:24:06,040
Mer av det här
646 00:24:06,040 --> 00:24:08,040
Jag har hämtat grejer på CPU fronten sen jag höll på med
647 00:24:08,040 --> 00:24:10,040
Det får man ändå säga
648 00:24:10,040 --> 00:24:12,040
Var det bra och dåligt kan man säga
649 00:24:12,040 --> 00:24:14,040
Man kan väl säga
650 00:24:14,040 --> 00:24:16,040
Överhuvudtaget liksom
651 00:24:16,040 --> 00:24:18,040
Nivån på
652 00:24:18,040 --> 00:24:20,040
Den research
653 00:24:20,040 --> 00:24:22,040
Som ligger bakom de här
654 00:24:22,040 --> 00:24:24,040
Serierna
655 00:24:24,040 --> 00:24:26,040
Jag säger bara att läsa
656 00:24:26,040 --> 00:24:28,040
De här white paperna
657 00:24:28,040 --> 00:24:30,040
Jag får erkänna
658 00:24:30,040 --> 00:24:32,040
Nu har jag i och för sig suttit på
659 00:24:32,040 --> 00:24:34,040
Kvällar
660 00:24:34,040 --> 00:24:36,040
För jag har inte haft tid att läsa på dagtid
661 00:24:36,040 --> 00:24:38,040
Men två gånger
662 00:24:38,040 --> 00:24:40,040
Satt jag och somnade
663 00:24:40,040 --> 00:24:42,040
För att jag försökte förstå
664 00:24:42,040 --> 00:24:44,040
De här kodexemplen
665 00:24:44,040 --> 00:24:46,040
Jag är ju inte till att börja med någon utvecklare
666 00:24:46,040 --> 00:24:48,040
Så jag är ju tappad till att börja med
667 00:24:48,040 --> 00:24:50,040
Men jag kan ju flika in då
668 00:24:50,040 --> 00:24:52,040
Jag har jobbat med Jan Horn
669 00:24:52,040 --> 00:24:54,040
Det är precis mannen
670 00:24:54,040 --> 00:24:56,040
Som har hittat det här
671 00:24:56,040 --> 00:24:58,040
Han har varit med i samma team som jag var
672 00:24:58,040 --> 00:25:00,040
Och jag har gjort två test med honom
673 00:25:00,040 --> 00:25:02,040
Då i den strukturen
674 00:25:02,040 --> 00:25:04,040
På Q53 som jag är med
675 00:25:04,040 --> 00:25:06,040
Då får man ju sitt lilla arbetspaket
676 00:25:06,040 --> 00:25:08,040
Att det här är ditt expertområde
677 00:25:08,040 --> 00:25:10,040
Det här är det du ska göra
678 00:25:10,040 --> 00:25:12,040
Och sen har man Jan
679 00:25:12,040 --> 00:25:14,040
Han är expert på allt
680 00:25:14,040 --> 00:25:16,040
Så jag vet en gång
681 00:25:16,040 --> 00:25:18,040
Där vi satt och tittade på en känd ramverk
682 00:25:18,040 --> 00:25:20,040
För VPN till exempel
683 00:25:20,040 --> 00:25:22,040
Då kommer liksom sån här tcp
684 00:25:22,040 --> 00:25:24,040
Sequence och timing attack
685 00:25:24,040 --> 00:25:26,040
Som jag fattar ingenting
686 00:25:26,040 --> 00:25:28,040
Det är mitt arbetspaket
687 00:25:28,040 --> 00:25:30,040
Absolut ingenting
688 00:25:30,040 --> 00:25:32,040
Hur tänker han, hur är detta ens möjligt
689 00:25:32,040 --> 00:25:34,040
Och det tar mig liksom
690 00:25:34,040 --> 00:25:36,040
Han får sitta och traggla med mig i typ
691 00:25:36,040 --> 00:25:38,040
Tre timmar och jag är ganska bra på de grejerna
692 00:25:38,040 --> 00:25:40,040
Det tar lång tid och sen börjar poletten
693 00:25:40,040 --> 00:25:42,040
Hamna ner och så bara
694 00:25:42,040 --> 00:25:44,040
Så har jag aldrig tänkt på det
695 00:25:44,040 --> 00:25:46,040
Det kanske går men det här är en kille som är
696 00:25:46,040 --> 00:25:48,040
Han gör inget annat
697 00:25:48,040 --> 00:25:50,040
Han gör inget annat
698 00:25:50,040 --> 00:25:52,040
Så att för oss dödliga så här
699 00:25:52,040 --> 00:25:54,040
Det är okej
700 00:25:54,040 --> 00:25:56,040
Det är okej att somna
701 00:25:56,040 --> 00:25:58,040
Med paddande knät
702 00:25:58,040 --> 00:26:00,040
Och tillbaka efter julledigheten nu
703 00:26:00,040 --> 00:26:02,040
Så var det ett pinnat meddelande i våran teamslack
704 00:26:02,040 --> 00:26:04,040
Så står det bara så här
705 00:26:04,040 --> 00:26:06,040
What are Cure53 famous for
706 00:26:06,040 --> 00:26:08,040
A place where Jan used to work
707 00:26:10,040 --> 00:26:12,040
Han är ju så
708 00:26:12,040 --> 00:26:14,040
Över jävla smart
709 00:26:14,040 --> 00:26:16,040
Vad man kan säga är väl att
710 00:26:16,040 --> 00:26:18,040
Meltdown-pappren
711 00:26:18,040 --> 00:26:20,040
Och Kaiser Biscuit och sånt
712 00:26:20,040 --> 00:26:22,040
Där är du ändå liksom så här
713 00:26:22,040 --> 00:26:24,040
Där är det inte jättesvårt
714 00:26:24,040 --> 00:26:26,040
Men Spektrepappret
715 00:26:26,040 --> 00:26:28,040
Känns lite som att
716 00:26:28,040 --> 00:26:30,040
Det är en jättesvår smält
717 00:26:30,040 --> 00:26:32,040
Det gjorde jag med men i bloggposten
718 00:26:32,040 --> 00:26:34,040
Från Project Zero fanns ju
719 00:26:34,040 --> 00:26:36,040
Länkar till andra bloggposter
720 00:26:36,040 --> 00:26:38,040
Och eftersom man då tyckte att det kanske var lite
721 00:26:38,040 --> 00:26:40,040
Svårsmält så klickade man ju på länkarna
722 00:26:40,040 --> 00:26:42,040
Och då blev det lätt mer lättsmält
723 00:26:42,040 --> 00:26:44,040
För då var det mer lättförståeligt
724 00:26:44,040 --> 00:26:46,040
Jag kommer inte ihåg
725 00:26:46,040 --> 00:26:48,040
Vi pratade om det här innan podcasten
726 00:26:48,040 --> 00:26:50,040
Anders Fogh
727 00:26:50,040 --> 00:26:52,040
Den var bra
728 00:26:52,040 --> 00:26:54,040
Och den är skriven på ett mer
729 00:26:54,040 --> 00:26:56,040
Förståeligt sätt
730 00:26:56,040 --> 00:26:58,040
Jag vet inte det är så här
731 00:26:58,040 --> 00:27:00,040
Jag vet inte vad podcasten går att läsa
732 00:27:00,040 --> 00:27:02,040
Nej vi kan länka till
733 00:27:02,040 --> 00:27:04,040
Han har ett par riktigt bra inlägg
734 00:27:04,040 --> 00:27:06,040
En som jag tyckte var intressant
735 00:27:06,040 --> 00:27:08,040
Som handlade lite om hur gick det till
736 00:27:08,040 --> 00:27:10,040
När tre eller till och med fyra forskningslag
737 00:27:10,040 --> 00:27:12,040
Medelmedel samtidigt kom på det här
738 00:27:12,040 --> 00:27:14,040
För det är ju liksom oberoende av varandra
739 00:27:14,040 --> 00:27:16,040
Så har flera olika spelare kommit på
740 00:27:16,040 --> 00:27:18,040
Precis den här sorbeten
741 00:27:18,040 --> 00:27:20,040
Och det låter ju så här hur går det till
742 00:27:20,040 --> 00:27:22,040
Och han förklarar det väldigt bra
743 00:27:22,040 --> 00:27:24,040
Lätt förklarat så kan vi säga
744 00:27:24,040 --> 00:27:26,040
Det här har varit
745 00:27:26,040 --> 00:27:28,040
Forskning kring det här
746 00:27:28,040 --> 00:27:30,040
Det har varit som en svart karta litegrann
747 00:27:30,040 --> 00:27:32,040
Det är så du gör i ditt äventyrsspel
748 00:27:32,040 --> 00:27:34,040
Det är war of fog, det är svart överallt
749 00:27:34,040 --> 00:27:36,040
Dit du går där blir det liksom upplyst
750 00:27:36,040 --> 00:27:38,040
Det låter som mudd
751 00:27:38,040 --> 00:27:40,040
Ganska likt en mudd då
752 00:27:40,040 --> 00:27:42,040
Det här var det enda svarta stället
753 00:27:42,040 --> 00:27:44,040
Kvar på kartan
754 00:27:44,040 --> 00:27:46,040
Så alla stigare ledde hit
755 00:27:46,040 --> 00:27:48,040
Alla gick till det här området
756 00:27:48,040 --> 00:27:50,040
För allting runtomkring var liksom klart
757 00:27:50,040 --> 00:27:52,040
Så alla visste att det här ska bli intressant
758 00:27:52,040 --> 00:27:54,040
Att titta på men ingen trodde att de skulle hitta någonting
759 00:27:54,040 --> 00:27:56,040
För de tänkte nej nej
760 00:27:56,040 --> 00:27:58,040
Det kommer inte, det finns någon
761 00:27:58,040 --> 00:28:00,040
Ingen vet hur CPU-erna är byggda
762 00:28:00,040 --> 00:28:02,040
Det är ju liksom hemligt
763 00:28:02,040 --> 00:28:04,040
Trots det här pappret så är det fortfarande så här
764 00:28:04,040 --> 00:28:06,040
Vi vet inte riktigt
765 00:28:06,040 --> 00:28:08,040
Det finns ju dock referenser till Intels manual
766 00:28:08,040 --> 00:28:10,040
Där det här är en feature
767 00:28:10,040 --> 00:28:12,040
Och det är inget skämt
768 00:28:12,040 --> 00:28:14,040
Samtidigt känns det inte riktigt som att man hade kunnat hitta den här sårbörjaren
769 00:28:14,040 --> 00:28:16,040
Bara genom RTFM liksom
770 00:28:16,040 --> 00:28:18,040
Detaljerna har ju inte varit kända tidigare
771 00:28:18,040 --> 00:28:20,040
Men
772 00:28:20,040 --> 00:28:22,040
Som du säger det här
773 00:28:22,040 --> 00:28:24,040
Man har jobbat upp ett visst momentum
774 00:28:24,040 --> 00:28:26,040
Som har rört sig ganska rakt mot den här punkten
775 00:28:26,040 --> 00:28:28,040
Hon
776 00:28:28,040 --> 00:28:30,040
Hette hon Stephanie D’Antonette
777 00:28:30,040 --> 00:28:32,040
Ja som är sidechannel-attacken
778 00:28:32,040 --> 00:28:34,040
I Super Hypervisors
779 00:28:34,040 --> 00:28:36,040
Hon hade tydligen hållit ett talk
780 00:28:36,040 --> 00:28:38,040
I
781 00:28:38,040 --> 00:28:40,040
Det var typ för ett halvår sedan
782 00:28:40,040 --> 00:28:42,040
Eller ett år sedan
783 00:28:42,040 --> 00:28:44,040
Där hon är tydligen
784 00:28:44,040 --> 00:28:46,040
Grymt nära inne på en av de här grejerna
785 00:28:46,040 --> 00:28:48,040
Liksom så att
786 00:28:48,040 --> 00:28:50,040
När det här
787 00:28:50,040 --> 00:28:52,040
Publicerades
788 00:28:52,040 --> 00:28:54,040
Så hon bara
789 00:28:54,040 --> 00:28:56,040
Det här var ju lite likt vad jag pratade om
790 00:28:56,040 --> 00:28:58,040
Och så bara
791 00:28:58,040 --> 00:29:00,040
Ja det tänkte vi också när vi såg det
792 00:29:00,040 --> 00:29:02,040
Så hon har ju varit och pratat
793 00:29:02,040 --> 00:29:04,040
På konferens om
794 00:29:04,040 --> 00:29:06,040
En av de här grejerna har varit
795 00:29:06,040 --> 00:29:08,040
Men tricket är ju lite här
796 00:29:08,040 --> 00:29:10,040
De har ju fått ihop
797 00:29:10,040 --> 00:29:12,040
Att lura processer
798 00:29:12,040 --> 00:29:14,040
Till att sno minne
799 00:29:14,040 --> 00:29:16,040
Och inte göra det kooperativt
800 00:29:16,040 --> 00:29:18,040
Men jag tror att Joanna
801 00:29:18,040 --> 00:29:20,040
Rutkowska
802 00:29:20,040 --> 00:29:22,040
Hon hade ju också något liknande
803 00:29:22,040 --> 00:29:24,040
Som också var och tangerade
804 00:29:24,040 --> 00:29:26,040
På detta
805 00:29:26,040 --> 00:29:28,040
Men ändå
806 00:29:28,040 --> 00:29:30,040
Och det var ju ur Zen perspektiv
807 00:29:30,040 --> 00:29:32,040
Om jag inte missminner mig
808 00:29:32,040 --> 00:29:34,040
Alltså i Zen Hypervisor
809 00:29:34,040 --> 00:29:36,040
Så det är faktiskt som Mattias säger
810 00:29:36,040 --> 00:29:38,040
Många har vart och namnat på
811 00:29:38,040 --> 00:29:40,040
Men man kanske kan se det som så här
812 00:29:40,040 --> 00:29:42,040
Folk har plockat fram
813 00:29:42,040 --> 00:29:44,040
Den ena Lego-biten
814 00:29:44,040 --> 00:29:46,040
Efter den andra
815 00:29:46,040 --> 00:29:48,040
Och sen de som har gjort Meltdown
816 00:29:48,040 --> 00:29:50,040
Och Spectre
817 00:29:50,040 --> 00:29:52,040
Har kommit på hur man sätter ihop
818 00:29:52,040 --> 00:29:54,040
Legoklossarna på rätt sätt
819 00:29:54,040 --> 00:29:56,040
Ja
820 00:29:56,040 --> 00:29:58,040
Och jag kommenterade den
821 00:29:58,040 --> 00:30:00,040
När hon pratade på Sekt-T
822 00:30:00,040 --> 00:30:02,040
Ja det är ju skitcoolt
823 00:30:02,040 --> 00:30:04,040
Det är grundforskning
824 00:30:04,040 --> 00:30:06,040
Men vad ska man ha det till
825 00:30:06,040 --> 00:30:08,040
Det var ju en ganska så där
826 00:30:08,040 --> 00:30:10,040
Wow man kan skicka information
827 00:30:10,040 --> 00:30:12,040
Emellan två
828 00:30:12,040 --> 00:30:14,040
Två hoster på en Hypervisor
829 00:30:14,040 --> 00:30:16,040
Genom att använda den här
830 00:30:16,040 --> 00:30:18,040
Covert Channel
831 00:30:18,040 --> 00:30:20,040
Men
832 00:30:20,040 --> 00:30:22,040
Okej hur fräckt var det
833 00:30:22,040 --> 00:30:24,040
Cool grundforskning
834 00:30:24,040 --> 00:30:26,040
Men det går ju inte att använda till något
835 00:30:26,040 --> 00:30:28,040
Med den här informationen
836 00:30:28,040 --> 00:30:30,040
Okej
837 00:30:30,040 --> 00:30:32,040
Men det är ju det som är grundforskning
838 00:30:32,040 --> 00:30:34,040
Man kan använda det till något annat
839 00:30:34,040 --> 00:30:36,040
Som är ganska roligt
840 00:30:36,040 --> 00:30:38,040
Som en hävstång i aktiehandel
841 00:30:38,040 --> 00:30:40,040
Det är en snygg
842 00:30:40,040 --> 00:30:42,040
Ett snyggt hopp nu
843 00:30:42,040 --> 00:30:44,040
Ölövergång till Intels vd
844 00:30:44,040 --> 00:30:46,040
Men nu ska vi inte ta hans händ
845 00:30:46,040 --> 00:30:48,040
Vi kanske ska prata lite om impact
846 00:30:48,040 --> 00:30:50,040
Jag tänkte Spectre först
847 00:30:50,040 --> 00:30:52,040
Vad är skillnaden mellan Meltdown och Spectre
848 00:30:52,040 --> 00:30:54,040
Egentligen
849 00:30:54,040 --> 00:30:56,040
Har vi tackat för ölen förresten
850 00:30:56,040 --> 00:30:58,040
Ja det gör vi sen
851 00:30:58,040 --> 00:31:00,040
Det här är strukt ju
852 00:31:00,040 --> 00:31:02,040
Ja det här är strukt
853 00:31:02,040 --> 00:31:04,040
Skärta nu
854 00:31:04,040 --> 00:31:06,040
Men Meltdown handlar om
855 00:31:06,040 --> 00:31:08,040
Att
856 00:31:08,040 --> 00:31:10,040
Från user space
857 00:31:10,040 --> 00:31:12,040
Göra access till supervisor minne
858 00:31:12,040 --> 00:31:14,040
Som du inte ska få lov att göra
859 00:31:14,040 --> 00:31:16,040
Så den är väldigt specifik
860 00:31:16,040 --> 00:31:18,040
Spectre är lite mer spännande
861 00:31:18,040 --> 00:31:20,040
För den är ett mer allmänt
862 00:31:20,040 --> 00:31:22,040
Genellt problem
863 00:31:22,040 --> 00:31:24,040
Och den handlar väldigt mycket om
864 00:31:24,040 --> 00:31:26,040
Allmäst om minne
865 00:31:26,040 --> 00:31:28,040
Som du typ
866 00:31:28,040 --> 00:31:30,040
Borde få lov att accessa
867 00:31:30,040 --> 00:31:32,040
Det är inte så
868 00:31:32,040 --> 00:31:34,040
För Meltdown är lite sådär
869 00:31:36,040 --> 00:31:38,040
EOP
870 00:31:38,040 --> 00:31:40,040
Elevation of privilege
871 00:31:40,040 --> 00:31:42,040
Precis
872 00:31:42,040 --> 00:31:44,040
Det är ett litet EOP mojäng
873 00:31:44,040 --> 00:31:46,040
Där du gör någonting du faktiskt inte får
874 00:31:46,040 --> 00:31:48,040
Medan Spectre är mer
875 00:31:48,040 --> 00:31:50,040
Gör skumma saker
876 00:31:50,040 --> 00:31:52,040
Och den
877 00:31:52,040 --> 00:31:54,040
Den lättaste där var ju
878 00:31:54,040 --> 00:31:56,040
Att du från
879 00:31:56,040 --> 00:31:58,040
Javascript
880 00:31:58,040 --> 00:32:00,040
Kan få Firefox och
881 00:32:00,040 --> 00:32:02,040
Och kräkas ut
882 00:32:02,040 --> 00:32:04,040
Alla hemligheter
883 00:32:04,040 --> 00:32:06,040
Och det var ju alltså
884 00:32:06,040 --> 00:32:08,040
Alltså bortsett från att
885 00:32:08,040 --> 00:32:10,040
Spectre attacken var tuff liksom
886 00:32:10,040 --> 00:32:12,040
När man läser det här pappret och inser det
887 00:32:12,040 --> 00:32:14,040
Någon skrev ett Javascript
888 00:32:14,040 --> 00:32:16,040
Konstruerade det på det sättet
889 00:32:16,040 --> 00:32:18,040
Så att
890 00:32:18,040 --> 00:32:20,040
V8
891 00:32:20,040 --> 00:32:22,040
Motorn
892 00:32:22,040 --> 00:32:24,040
Skapar assembly cord
893 00:32:24,040 --> 00:32:26,040
Exakt vad de vill
894 00:32:26,040 --> 00:32:28,040
Och den här jävla assembly cord
895 00:32:28,040 --> 00:32:30,040
Den ser ju dessutom
896 00:32:30,040 --> 00:32:32,040
Den ser ju fin ut
897 00:32:32,040 --> 00:32:34,040
Alltså den är ju inte jätteineffektiv
898 00:32:34,040 --> 00:32:36,040
Utan det är liksom såhär
899 00:32:36,040 --> 00:32:38,040
Ett jävla Javascript
900 00:32:38,040 --> 00:32:40,040
Blir en ganska kompakt assembly cord
901 00:32:40,040 --> 00:32:42,040
Det tyckte jag var weird
902 00:32:44,040 --> 00:32:46,040
Det är ju dags att inse
903 00:32:46,040 --> 00:32:48,040
Att Javascript liksom
904 00:32:48,040 --> 00:32:50,040
Jag har alltid hört
905 00:32:50,040 --> 00:32:52,040
Eller man har hört att V8 är ganska effektiv
906 00:32:52,040 --> 00:32:54,040
Och så liksom såhär
907 00:32:54,040 --> 00:32:56,040
Fucking Javascript liksom
908 00:32:56,040 --> 00:32:58,040
Hur bra kan det vara
909 00:32:58,040 --> 00:33:00,040
Och så den jobbiga känslan också
910 00:33:00,040 --> 00:33:02,040
Att känna att okej så från Javascript
911 00:33:02,040 --> 00:33:04,040
Som är ju typiskt någonting man plockar upp
912 00:33:04,040 --> 00:33:06,040
Från valfri sajt på internet
913 00:33:06,040 --> 00:33:08,040
Att jag kan läsa mitt minne
914 00:33:08,040 --> 00:33:10,040
Men jag fattar dig rätt
915 00:33:10,040 --> 00:33:12,040
Det är väl bara Firefox processens minne
916 00:33:12,040 --> 00:33:14,040
När den kommer åt där
917 00:33:14,040 --> 00:33:16,040
Precis
918 00:33:16,040 --> 00:33:18,040
Där har man ju aldrig sparat några lösenord
919 00:33:18,040 --> 00:33:20,040
Eller kreditkort
920 00:33:20,040 --> 00:33:22,040
Nej det är väl typ så
921 00:33:22,040 --> 00:33:24,040
När det är en människa som
922 00:33:24,040 --> 00:33:26,040
Är inne på en ondskefull sajt
923 00:33:26,040 --> 00:33:28,040
Eller en sajt med reklamannonser
924 00:33:28,040 --> 00:33:30,040
Samtidigt som man kollar banken
925 00:33:30,040 --> 00:33:32,040
Eller för den delen använder det XSS
926 00:33:32,040 --> 00:33:34,040
Session cookie måste ju vara någonting
927 00:33:34,040 --> 00:33:36,040
Man uppenbart kan sno den vägen
928 00:33:36,040 --> 00:33:38,040
För jag gissar på att det är cross
929 00:33:38,040 --> 00:33:40,040
De är väl inte isolerade tabbarna
930 00:33:40,040 --> 00:33:42,040
De ligger väl under samma process
931 00:33:42,040 --> 00:33:44,040
Så that happened
932 00:33:44,040 --> 00:33:46,040
Så med hjälp av Spectre
933 00:33:46,040 --> 00:33:48,040
Så kan vi slå HTTP only flaggan
934 00:33:48,040 --> 00:33:50,040
På cookies
935 00:33:50,040 --> 00:33:52,040
Japp så är det
936 00:33:52,040 --> 00:33:54,040
Jag håller med om att
937 00:33:54,040 --> 00:33:56,040
Någonting jag läste i mediepappret
938 00:33:56,040 --> 00:33:58,040
Det var just det
939 00:33:58,040 --> 00:34:00,040
Man kan ta sig
940 00:34:00,040 --> 00:34:02,040
Det är ju också en elevation privilege
941 00:34:02,040 --> 00:34:04,040
Det vill säga att det finns någonting som
942 00:34:04,040 --> 00:34:06,040
En mamma i den här processen
943 00:34:06,040 --> 00:34:08,040
Som säger vad jag får och inte får att göra
944 00:34:08,040 --> 00:34:10,040
Men jag kan liksom
945 00:34:10,040 --> 00:34:12,040
Hoppa förbi den mamman
946 00:34:12,040 --> 00:34:14,040
Jag kan läsa hemligheter i den processen
947 00:34:14,040 --> 00:34:16,040
Trots att jag egentligen inte får det
948 00:34:16,040 --> 00:34:18,040
Någon slags sandboxing variant
949 00:34:18,040 --> 00:34:20,040
Precis jag kan observera ditt eget minne
950 00:34:20,040 --> 00:34:22,040
Ja och ditt eget
951 00:34:22,040 --> 00:34:24,040
Det beror ju på hur man menar med det
952 00:34:24,040 --> 00:34:26,040
I det här fallet när jag har skript från evil.com
953 00:34:26,040 --> 00:34:28,040
Läser Firefox minnen
954 00:34:28,040 --> 00:34:30,040
Så är det inte mitt minne
955 00:34:30,040 --> 00:34:32,040
Men om du är Firefox
956 00:34:32,040 --> 00:34:34,040
Så är det ju ditt eget minne
957 00:34:34,040 --> 00:34:36,040
Ja det är sant
958 00:34:36,040 --> 00:34:38,040
Men det är väl
959 00:34:38,040 --> 00:34:40,040
Själva grundidén
960 00:34:40,040 --> 00:34:42,040
Att exekvera annans kod
961 00:34:42,040 --> 00:34:44,040
Är väl alltid såhär
962 00:34:44,040 --> 00:34:46,040
Ett orosmoment
963 00:34:46,040 --> 00:34:48,040
Jag läste en
964 00:34:48,040 --> 00:34:50,040
Jag tror det var någon advokatsida
965 00:34:50,040 --> 00:34:52,040
Faktiskt en
966 00:34:52,040 --> 00:34:54,040
Verkligen laymans terms
967 00:34:54,040 --> 00:34:56,040
De gjorde en förklaring
968 00:34:56,040 --> 00:34:58,040
På de här sårbarheterna
969 00:34:58,040 --> 00:35:00,040
Och vad betyder det för dig
970 00:35:00,040 --> 00:35:02,040
Och sen så
971 00:35:02,040 --> 00:35:04,040
Gjorde de en poäng just det här
972 00:35:04,040 --> 00:35:06,040
Med de här syndikerade
973 00:35:06,040 --> 00:35:08,040
Adnätverken
974 00:35:08,040 --> 00:35:10,040
Som ju används till höger och vänster
975 00:35:10,040 --> 00:35:12,040
Och där det i stort sett
976 00:35:12,040 --> 00:35:14,040
Sker
977 00:35:14,040 --> 00:35:16,040
Ögonblicksauktioner
978 00:35:16,040 --> 00:35:18,040
Att Aftonbladet har ingen aning om
979 00:35:18,040 --> 00:35:20,040
Vad de visar
980 00:35:20,040 --> 00:35:22,040
För reklam
981 00:35:22,040 --> 00:35:24,040
Det sker liksom
982 00:35:24,040 --> 00:35:26,040
Försäljning av reklamplats
983 00:35:26,040 --> 00:35:28,040
I stunden
984 00:35:28,040 --> 00:35:30,040
Och det kan säljas till en broker
985 00:35:30,040 --> 00:35:32,040
Som säljer det vidare
986 00:35:32,040 --> 00:35:34,040
Och sen säljer det vidare
987 00:35:34,040 --> 00:35:36,040
Och att plötsligt så
988 00:35:36,040 --> 00:35:38,040
Ja du går in på aftonbladet.se
989 00:35:38,040 --> 00:35:40,040
Och sen så vips
990 00:35:40,040 --> 00:35:42,040
Så hade du en elak banner där
991 00:35:42,040 --> 00:35:44,040
Som inte bara visade glada grisar som dansade
992 00:35:44,040 --> 00:35:46,040
Utan de tryckte ner någon liten kodsnutt
993 00:35:46,040 --> 00:35:48,040
Som din dator håller på att köra
994 00:35:48,040 --> 00:35:50,040
Men det här är någon lysande tillfälle till mig
995 00:35:50,040 --> 00:35:52,040
Kiselgruvan
996 00:35:52,040 --> 00:35:54,040
Kalle Kula AB
997 00:35:54,040 --> 00:35:56,040
Där vi bryter vårt eget kisel
998 00:35:56,040 --> 00:35:58,040
Och bygger vår egen CPU
999 00:35:58,040 --> 00:36:00,040
Med glada dansade grisar
1000 00:36:00,040 --> 00:36:02,040
Men sen en tog rövan
1001 00:36:02,040 --> 00:36:04,040
Kunde ha varit just case till exempel
1002 00:36:04,040 --> 00:36:06,040
Ja
1003 00:36:06,040 --> 00:36:08,040
Men frågan är om Spectre
1004 00:36:08,040 --> 00:36:10,040
För den innehåller ju två varianter
1005 00:36:10,040 --> 00:36:12,040
Nu tror jag de var
1006 00:36:12,040 --> 00:36:14,040
Snarare baserade på hur
1007 00:36:14,040 --> 00:36:16,040
Man tog sig dit, alltså att det var det här
1008 00:36:16,040 --> 00:36:18,040
Branch prediction och det ena var
1009 00:36:18,040 --> 00:36:20,040
Något annat som jag inte kommer ihåg
1010 00:36:20,040 --> 00:36:22,040
Men jag har för mig att jag läste någonstans
1011 00:36:22,040 --> 00:36:24,040
Att även Spectre skulle göra att du kan läsa
1012 00:36:24,040 --> 00:36:26,040
En annan process
1013 00:36:26,040 --> 00:36:28,040
Minne
1014 00:36:28,040 --> 00:36:30,040
Alltså från en process så kan jag läsa
1015 00:36:30,040 --> 00:36:32,040
En annan process minne
1016 00:36:32,040 --> 00:36:34,040
Den var lite jobbig att fatta
1017 00:36:34,040 --> 00:36:36,040
Tror jag
1018 00:36:36,040 --> 00:36:38,040
Innan vi hoppade in på den
1019 00:36:38,040 --> 00:36:40,040
Om man kör, jag har ett tankeexperiment
1020 00:36:40,040 --> 00:36:42,040
Om man kör en Tor
1021 00:36:42,040 --> 00:36:44,040
Exit node
1022 00:36:44,040 --> 00:36:46,040
Ja då kan du ju skjuta in
1023 00:36:46,040 --> 00:36:48,040
Ja herregud
1024 00:36:48,040 --> 00:36:50,040
Om du vill
1025 00:36:50,040 --> 00:36:52,040
Det är ju så jävla läskigt
1026 00:36:52,040 --> 00:36:54,040
Och det gör väl inga trebokstadsbekortningar
1027 00:36:54,040 --> 00:36:56,040
I USA va?
1028 00:36:56,040 --> 00:36:58,040
Nej
1029 00:36:58,040 --> 00:37:00,040
Fast de lär ju välja sin kedja dock
1030 00:37:00,040 --> 00:37:02,040
Tror du inte det?
1031 00:37:02,040 --> 00:37:04,040
Vi har startat konkurrerande Tor-nätverk
1032 00:37:04,040 --> 00:37:06,040
Bror
1033 00:37:08,040 --> 00:37:10,040
Och det är ett så kallat sidospår eller?
1034 00:37:10,040 --> 00:37:12,040
Nej men det
1035 00:37:12,040 --> 00:37:14,040
För det finns ju ganska många sådana
1036 00:37:14,040 --> 00:37:16,040
Och det är ju ganska många personer på internet
1037 00:37:16,040 --> 00:37:18,040
Som
1038 00:37:18,040 --> 00:37:20,040
De använder Tor
1039 00:37:20,040 --> 00:37:22,040
För att
1040 00:37:22,040 --> 00:37:24,040
Av olika anledningar
1041 00:37:24,040 --> 00:37:26,040
Fick lite puls här
1042 00:37:26,040 --> 00:37:28,040
För det skulle man ju då
1043 00:37:28,040 --> 00:37:30,040
Potentiellt kunna läcka ut
1044 00:37:30,040 --> 00:37:32,040
Där får jag en ny business venture
1045 00:37:32,040 --> 00:37:34,040
Typ försöka hitta den lokala
1046 00:37:34,040 --> 00:37:36,040
IP-adressen på maskinerna
1047 00:37:36,040 --> 00:37:38,040
Ja
1048 00:37:38,040 --> 00:37:40,040
Det hade ju varit till och med
1049 00:37:40,040 --> 00:37:42,040
Väldigt gångbart
1050 00:37:42,040 --> 00:37:44,040
Kör man då som sagt var lösenordshanterade
1051 00:37:44,040 --> 00:37:46,040
Plugin i browser
1052 00:37:46,040 --> 00:37:48,040
Så har du ju tappat bort dina credentials
1053 00:37:48,040 --> 00:37:50,040
Ja
1054 00:37:50,040 --> 00:37:52,040
Men Jesper
1055 00:37:52,040 --> 00:37:54,040
Du bygger ett eget kopparnät
1056 00:37:54,040 --> 00:37:56,040
Ja till andra sajter
1057 00:37:56,040 --> 00:37:58,040
Men jag ska vilja erkänna att
1058 00:37:58,040 --> 00:38:00,040
Just de här bitarna
1059 00:38:00,040 --> 00:38:02,040
Hur man läser data och om man ens ska göra det
1060 00:38:02,040 --> 00:38:04,040
Från en process till en annan via spekter
1061 00:38:04,040 --> 00:38:06,040
Det har inte jag riktigt fattat
1062 00:38:06,040 --> 00:38:08,040
Det var lite klurigt där
1063 00:38:08,040 --> 00:38:10,040
Det glädjer mig att höra Peter säga det
1064 00:38:10,040 --> 00:38:12,040
Men det som
1065 00:38:12,040 --> 00:38:14,040
Det som
1066 00:38:14,040 --> 00:38:16,040
Var ganska
1067 00:38:16,040 --> 00:38:18,040
Lätt att förstå var ändå
1068 00:38:18,040 --> 00:38:20,040
Det var
1069 00:38:20,040 --> 00:38:22,040
Att spektret
1070 00:38:22,040 --> 00:38:24,040
Så kunde man träna upp
1071 00:38:24,040 --> 00:38:26,040
De här
1072 00:38:26,040 --> 00:38:28,040
Branch prediction buffrarna
1073 00:38:28,040 --> 00:38:30,040
Och få dem att tro att
1074 00:38:30,040 --> 00:38:32,040
Man ska ta branscher som
1075 00:38:32,040 --> 00:38:34,040
Man ohälsa inte vill ta
1076 00:38:34,040 --> 00:38:36,040
Och historiskt sett
1077 00:38:36,040 --> 00:38:38,040
Så när man
1078 00:38:38,040 --> 00:38:40,040
Context switchar från en process till en annan
1079 00:38:40,040 --> 00:38:42,040
Så har man inte räknat
1080 00:38:42,040 --> 00:38:44,040
Branch prediction som en del av kontextet
1081 00:38:44,040 --> 00:38:46,040
Så man har låtit det
1082 00:38:46,040 --> 00:38:48,040
Skvalpa över mellan olika processer
1083 00:38:48,040 --> 00:38:50,040
För att förstå hur du
1084 00:38:50,040 --> 00:38:52,040
Från din onda process
1085 00:38:52,040 --> 00:38:54,040
Från din onda process så ber du om
1086 00:38:54,040 --> 00:38:56,040
Någon vanlig
1087 00:38:56,040 --> 00:38:58,040
Windows DLL
1088 00:38:58,040 --> 00:39:00,040
Och så börjar du träna upp processen
1089 00:39:00,040 --> 00:39:02,040
Till att tro att man ska hoppa konstigt i den
1090 00:39:02,040 --> 00:39:04,040
Och sen
1091 00:39:04,040 --> 00:39:06,040
Flurpar du över till en annan
1092 00:39:06,040 --> 00:39:08,040
Enhet
1093 00:39:08,040 --> 00:39:10,040
Och då med hjälp av det
1094 00:39:10,040 --> 00:39:12,040
På lite tur får du en jävla infoläcka
1095 00:39:12,040 --> 00:39:14,040
På något sätt
1096 00:39:14,040 --> 00:39:16,040
Men hur är det man enkelt observerar den här infoläckan
1097 00:39:16,040 --> 00:39:18,040
Från sin egen process?
1098 00:39:18,040 --> 00:39:20,040
För det är ju olika
1099 00:39:20,040 --> 00:39:22,040
Återigen det är ju olika page tables då
1100 00:39:22,040 --> 00:39:24,040
Så hur kan man se cash
1101 00:39:24,040 --> 00:39:26,040
Eller hur kan man referera cash mellan page tables
1102 00:39:26,040 --> 00:39:28,040
Det fattar inte jag riktigt
1103 00:39:28,040 --> 00:39:30,040
Cashen är ju cashen
1104 00:39:30,040 --> 00:39:32,040
Jo men
1105 00:39:32,040 --> 00:39:34,040
Det här är en bra diskussion
1106 00:39:34,040 --> 00:39:36,040
Vad är det du cashar då? Är det fysiska adresser du cashar?
1107 00:39:36,040 --> 00:39:38,040
Det är bara fysiskt
1108 00:39:38,040 --> 00:39:40,040
Så om jag då
1109 00:39:40,040 --> 00:39:42,040
Om jag då gör en viss läsning
1110 00:39:42,040 --> 00:39:44,040
För jag använder ju en gadget
1111 00:39:44,040 --> 00:39:46,040
I victimprocessen
1112 00:39:46,040 --> 00:39:48,040
För att då
1113 00:39:48,040 --> 00:39:50,040
Läsa en adress i victimprocessen
1114 00:39:50,040 --> 00:39:52,040
Så vet jag då den kommit
1115 00:39:52,040 --> 00:39:54,040
Den fysiska adressen har då landat
1116 00:39:54,040 --> 00:39:56,040
I cashen
1117 00:39:56,040 --> 00:39:58,040
Hur ska jag detektera det ifrån min process?
1118 00:39:58,040 --> 00:40:00,040
För vi har ju inte samma fysiska
1119 00:40:00,040 --> 00:40:02,040
Virtuella mappning där
1120 00:40:02,040 --> 00:40:04,040
Jag har ju en helt annan
1121 00:40:04,040 --> 00:40:06,040
Adressrymd liksom
1122 00:40:06,040 --> 00:40:08,040
Så hur
1123 00:40:08,040 --> 00:40:10,040
Vilka frågor ställer jag till cashen då?
1124 00:40:10,040 --> 00:40:12,040
Jag frågar efter minnesadress 1
1125 00:40:12,040 --> 00:40:14,040
Om jag får träff eller inte vad säger det mig då?
1126 00:40:14,040 --> 00:40:16,040
Så som jag fattar det så fick det väl
1127 00:40:16,040 --> 00:40:18,040
Jag kanske har fått den bakfoten
1128 00:40:18,040 --> 00:40:20,040
Men att du
1129 00:40:20,040 --> 00:40:22,040
Du fick liksom
1130 00:40:22,040 --> 00:40:24,040
Rätt process och hämta
1131 00:40:24,040 --> 00:40:26,040
Sin egen information
1132 00:40:26,040 --> 00:40:28,040
Och så cashas den
1133 00:40:28,040 --> 00:40:30,040
Informationen
1134 00:40:30,040 --> 00:40:32,040
Inte minnesadressen utan själva informationen
1135 00:40:32,040 --> 00:40:34,040
Men alltså tricket är väl som så här
1136 00:40:34,040 --> 00:40:36,040
Du vill hitta något sätt att få
1137 00:40:36,040 --> 00:40:38,040
Okej
1138 00:40:38,040 --> 00:40:40,040
Ja men det här
1139 00:40:40,040 --> 00:40:42,040
Det här är inte enkelt
1140 00:40:42,040 --> 00:40:44,040
Det är svårt
1141 00:40:44,040 --> 00:40:46,040
Om vi struntar i multiuser konceptet
1142 00:40:46,040 --> 00:40:48,040
Först så kan man tänka sig
1143 00:40:48,040 --> 00:40:50,040
Att du hoppar iväg till någonting
1144 00:40:50,040 --> 00:40:52,040
Och så vill du få den processen
1145 00:40:52,040 --> 00:40:54,040
Att om det är ett visst värde
1146 00:40:54,040 --> 00:40:56,040
Gör en access i ditt minne
1147 00:40:56,040 --> 00:40:58,040
Då är det ju liksom enkelt
1148 00:40:58,040 --> 00:41:00,040
Men hur kan du få en annan process
1149 00:41:00,040 --> 00:41:02,040
Att göra access i mitt minne
1150 00:41:02,040 --> 00:41:04,040
Då har jag antat att det är samma process
1151 00:41:04,040 --> 00:41:06,040
Precis
1152 00:41:06,040 --> 00:41:08,040
Det är jag med på
1153 00:41:08,040 --> 00:41:10,040
Det är inte ett problem
1154 00:41:10,040 --> 00:41:12,040
Men det är nu
1155 00:41:12,040 --> 00:41:14,040
För nu börjar vi komma till
1156 00:41:14,040 --> 00:41:16,040
Windows patch metod
1157 00:41:16,040 --> 00:41:18,040
På detta är ju lite speciell
1158 00:41:18,040 --> 00:41:20,040
För att där har du ju calls hela tiden
1159 00:41:20,040 --> 00:41:22,040
Som hoppar in i kärnan på Windows
1160 00:41:22,040 --> 00:41:24,040
Om man kan säga det
1161 00:41:24,040 --> 00:41:26,040
Och där har man ju löst det genom Elsas tvätt
1162 00:41:26,040 --> 00:41:28,040
Tror jag
1163 00:41:28,040 --> 00:41:30,040
Så att man bygger
1164 00:41:30,040 --> 00:41:32,040
Det här, nu är jag ute på Tunnels
1165 00:41:32,040 --> 00:41:34,040
För det här vet inte jag
1166 00:41:34,040 --> 00:41:36,040
Jag har bara hört det och tittat på en artikel
1167 00:41:36,040 --> 00:41:38,040
Men då har man liksom confinet vad det är man får lov
1168 00:41:38,040 --> 00:41:40,040
Att ta med sig i Pageat minne
1169 00:41:40,040 --> 00:41:42,040
Till varje anrop
1170 00:41:42,040 --> 00:41:44,040
Så att och då använder man Elsa
1171 00:41:44,040 --> 00:41:46,040
Som status
1172 00:41:46,040 --> 00:41:48,040
Det är Windows interntjänst
1173 00:41:48,040 --> 00:41:50,040
Typ som får lov att prata
1174 00:41:50,040 --> 00:41:52,040
Med kärnan typ
1175 00:41:52,040 --> 00:41:54,040
De visade ju någon reverse engineering
1176 00:41:54,040 --> 00:41:56,040
Av patchen och skrev att de
1177 00:41:56,040 --> 00:41:58,040
De skapar en sorts
1178 00:41:58,040 --> 00:42:00,040
Säkerhetsdomän runt
1179 00:42:00,040 --> 00:42:02,040
Processer liksom
1180 00:42:02,040 --> 00:42:04,040
Som gör då att det blir en process
1181 00:42:04,040 --> 00:42:06,040
Som ansvarar för att skicka skit in och ut
1182 00:42:06,040 --> 00:42:08,040
Egentligen
1183 00:42:08,040 --> 00:42:10,040
Så man gör en tyngre
1184 00:42:10,040 --> 00:42:12,040
Man gör en tyngre
1185 00:42:12,040 --> 00:42:14,040
Efter julekswitchen
1186 00:42:14,040 --> 00:42:16,040
Vad man gjorde i stora sätt
1187 00:42:16,040 --> 00:42:18,040
Sen brickar den tydligen
1188 00:42:18,040 --> 00:42:20,040
Ganska mycket burkar visade sig
1189 00:42:20,040 --> 00:42:22,040
Alltså jag är med
1190 00:42:22,040 --> 00:42:24,040
Jag är med på det scenariot
1191 00:42:24,040 --> 00:42:26,040
Till exempel att du har en gemensam DLL
1192 00:42:26,040 --> 00:42:28,040
Eller Shell libraries
1193 00:42:28,040 --> 00:42:30,040
Använder man det som den här staging area
1194 00:42:30,040 --> 00:42:32,040
Alltså det är där du vill att träffarna ska komma
1195 00:42:32,040 --> 00:42:34,040
Då fattar jag det, för då har du en delad yta
1196 00:42:34,040 --> 00:42:36,040
Och samma referenser till de minnesadresserna
1197 00:42:36,040 --> 00:42:38,040
Så då kan du ju testa dem
1198 00:42:38,040 --> 00:42:40,040
Från en process, så kan du testa vart en annan cacheade
1199 00:42:40,040 --> 00:42:40,780
Skilda processer
1200 00:42:40,780 --> 00:42:44,560
Men frågan är om det är så att
1201 00:42:44,560 --> 00:42:46,520
Du behöver en väldigt snäll
1202 00:42:46,520 --> 00:42:47,940
Medhjälplig DLL
1203 00:42:47,940 --> 00:42:49,920
För att göra attacken enkel
1204 00:42:49,920 --> 00:42:50,800
Men jag fattar inte så
1205 00:42:50,800 --> 00:42:54,920
Men definiera snäll och medhjälplig DLL
1206 00:42:54,920 --> 00:42:58,100
Vad som står i spektripappret
1207 00:42:58,100 --> 00:42:59,860
Är att för att göra någon attack
1208 00:42:59,860 --> 00:43:01,060
Så måste man
1209 00:43:01,060 --> 00:43:02,660
Först måste man kunna träna den
1210 00:43:02,660 --> 00:43:04,860
Och infektera en sån här
1211 00:43:04,860 --> 00:43:06,040
Branch prediction buffer
1212 00:43:06,040 --> 00:43:08,540
Och det säger de att det enda sättet
1213 00:43:08,540 --> 00:43:09,860
De har sett att man kan få till det
1214 00:43:09,860 --> 00:43:11,540
På Windows
1215 00:43:11,540 --> 00:43:14,220
Var att man har en delad DLL
1216 00:43:14,220 --> 00:43:16,020
Så att man har en execute sida
1217 00:43:16,020 --> 00:43:19,080
Som är samma i flera olika processer
1218 00:43:19,080 --> 00:43:19,620
Ja just det
1219 00:43:19,620 --> 00:43:21,380
För då kan du börja göra
1220 00:43:21,380 --> 00:43:24,100
Men då är det fortfarande Mattias fallet
1221 00:43:24,100 --> 00:43:25,540
Att vi delar
1222 00:43:25,540 --> 00:43:26,840
Ja men det sa du
1223 00:43:26,840 --> 00:43:30,480
Men jag förstod det nog nästan som att
1224 00:43:30,480 --> 00:43:33,420
I något av de här variant 1, 2, 3 fallen
1225 00:43:33,420 --> 00:43:35,620
Så var det faktiskt att man kunde
1226 00:43:35,620 --> 00:43:37,720
Migrera process
1227 00:43:37,720 --> 00:43:39,280
Så att du kunde läsa andra processer
1228 00:43:39,280 --> 00:43:39,840
Så jag läste det som
1229 00:43:39,840 --> 00:43:41,300
Då var det så att attacken
1230 00:43:41,300 --> 00:43:42,520
Ska vara cross process
1231 00:43:42,520 --> 00:43:44,260
Men i exemplen så hittade jag
1232 00:43:44,260 --> 00:43:45,360
Ingenting som var cross process
1233 00:43:45,360 --> 00:43:48,260
Men de säger ju att
1234 00:43:48,260 --> 00:43:49,400
För att utföra
1235 00:43:49,400 --> 00:43:51,080
Poisoningen så
1236 00:43:51,080 --> 00:43:53,220
Bara det finns en delad DLL
1237 00:43:53,220 --> 00:43:55,300
Så man har en
1238 00:43:55,300 --> 00:43:57,680
Execute sida som är delad
1239 00:43:57,680 --> 00:43:58,260
Så kan man göra
1240 00:43:58,260 --> 00:44:02,520
Branch prediction poisoning
1241 00:44:02,520 --> 00:44:04,120
Frågan är om du också
1242 00:44:04,120 --> 00:44:06,520
Behöver en DLL som är så jättehjälpsam
1243 00:44:06,520 --> 00:44:07,880
Att den sätter upp shared memory
1244 00:44:07,880 --> 00:44:08,880
Så att du också kan
1245 00:44:08,880 --> 00:44:09,820
Knuffa ut den här
1246 00:44:09,840 --> 00:44:12,080
Har du en shared DLL
1247 00:44:12,080 --> 00:44:13,180
Så var det väldigt lätt
1248 00:44:13,180 --> 00:44:16,200
Jag läste det inte som att det var en precondition
1249 00:44:16,200 --> 00:44:17,580
Men det är också en kul grej
1250 00:44:17,580 --> 00:44:18,780
Med båda de här papprena
1251 00:44:18,780 --> 00:44:21,580
Alla svar fanns inte där
1252 00:44:21,580 --> 00:44:23,860
Utan de sa att det har vi inte prövat
1253 00:44:23,860 --> 00:44:25,580
Det har vi inte testat
1254 00:44:25,580 --> 00:44:27,780
Men det lämnar väldigt mycket
1255 00:44:27,780 --> 00:44:28,760
Open-ended
1256 00:44:28,760 --> 00:44:31,420
Vilket är att jag tror att vi har ett fantastiskt
1257 00:44:31,420 --> 00:44:32,660
2018 framför oss
1258 00:44:32,660 --> 00:44:36,220
För det här är inte slutet
1259 00:44:36,220 --> 00:44:38,060
Men det är också vetenskapliga papper
1260 00:44:38,060 --> 00:44:39,820
Där de säger att du kan göra den här
1261 00:44:39,840 --> 00:44:40,420
Den här metoden
1262 00:44:40,420 --> 00:44:41,600
Den är ju easy
1263 00:44:41,600 --> 00:44:44,680
Och den som är easy
1264 00:44:44,680 --> 00:44:47,880
Det är lite imponerande
1265 00:44:47,880 --> 00:44:49,100
Och den som är hard
1266 00:44:49,100 --> 00:44:51,720
Har vi pratat någonting
1267 00:44:51,720 --> 00:44:54,140
Om patcharnas
1268 00:44:54,140 --> 00:44:55,720
Prestanda
1269 00:44:55,720 --> 00:44:57,720
Nej, vi kan väl gå in på impact här
1270 00:44:57,720 --> 00:44:59,020
För det faller ju under det
1271 00:44:59,020 --> 00:45:01,020
Jag har inte
1272 00:45:01,020 --> 00:45:03,880
Man följer ju folk på Twitter
1273 00:45:03,880 --> 00:45:05,720
Och då var det någon som postade
1274 00:45:05,720 --> 00:45:07,700
En bild där
1275 00:45:07,700 --> 00:45:09,680
Det var inte Amazon
1276 00:45:09,680 --> 00:45:11,180
För Amazon har patchat sedan länge
1277 00:45:11,180 --> 00:45:13,300
Mitten av december
1278 00:45:13,300 --> 00:45:15,640
Så gick det ut till alla Amazon-kunder
1279 00:45:15,640 --> 00:45:17,360
Att ni behöver rebota er
1280 00:45:17,360 --> 00:45:19,080
Skit, och om ni inte gör det så kommer vi
1281 00:45:19,080 --> 00:45:20,900
Tvinga er att göra det i början av januari
1282 00:45:20,900 --> 00:45:22,580
Så det här var, jag vet inte
1283 00:45:22,580 --> 00:45:24,580
Någon av de stora tre då
1284 00:45:24,580 --> 00:45:25,860
Minus Amazon då
1285 00:45:25,860 --> 00:45:27,780
Någon av de stora två som finns kvar
1286 00:45:27,780 --> 00:45:31,120
Där de hade gjort en CPU-graf då
1287 00:45:31,120 --> 00:45:32,560
Innan och efter patch
1288 00:45:32,560 --> 00:45:35,080
Sen vet inte jag
1289 00:45:35,080 --> 00:45:35,840
Den är
1290 00:45:35,840 --> 00:45:37,980
När jag tänker efter nu
1291 00:45:37,980 --> 00:45:39,080
Den kan ju vara extremt arrangerad
1292 00:45:39,680 --> 00:45:40,380
Den bilden nu
1293 00:45:40,380 --> 00:45:42,560
För att det beror ju på när man gjorde det
1294 00:45:42,560 --> 00:45:43,660
Och vad man jämför med
1295 00:45:43,660 --> 00:45:46,140
Men då såg man tydligt i alla fall
1296 00:45:46,140 --> 00:45:48,880
Att efter bot så var lasten högre än innan
1297 00:45:48,880 --> 00:45:50,340
För de hade skuggat de här två
1298 00:45:50,340 --> 00:45:51,540
Olika då
1299 00:45:51,540 --> 00:45:54,180
Graferna, och då var det så här
1300 00:45:54,180 --> 00:45:57,500
Någonstans mellan 15-25%
1301 00:45:57,500 --> 00:45:58,860
Mer last då
1302 00:45:58,860 --> 00:46:00,060
Jag såg precis på
1303 00:46:00,060 --> 00:46:02,560
På Twitter en kille som hade gått in
1304 00:46:02,560 --> 00:46:04,200
Och gjort en
1305 00:46:04,200 --> 00:46:06,240
En scoring
1306 00:46:06,240 --> 00:46:08,260
Av sin CPU i sin iOS
1307 00:46:08,260 --> 00:46:09,260
I sin iPhone
1308 00:46:09,680 --> 00:46:11,280
Före och efter han patchade
1309 00:46:11,280 --> 00:46:13,660
Ja för det kom ut en patch till mig igår
1310 00:46:13,660 --> 00:46:15,920
Ja, och där kan man se
1311 00:46:15,920 --> 00:46:17,980
Nu vet jag inte exakt vad de här siffrorna betyder
1312 00:46:17,980 --> 00:46:19,420
Men du har ett single core score
1313 00:46:19,420 --> 00:46:21,360
Och ett multi core score då
1314 00:46:21,360 --> 00:46:22,960
Pre-patch
1315 00:46:22,960 --> 00:46:26,060
Så då single core score på 3365
1316 00:46:26,060 --> 00:46:26,680
Vad det nu innebär
1317 00:46:26,680 --> 00:46:29,480
Och efteråt på 1539
1318 00:46:29,480 --> 00:46:30,020
Oj
1319 00:46:30,020 --> 00:46:33,300
Det var en jävligt fet hit
1320 00:46:33,300 --> 00:46:35,440
Multi core var innan
1321 00:46:35,440 --> 00:46:37,680
5831 och efter 4376
1322 00:46:38,560 --> 00:46:39,160
Spännande
1323 00:46:39,680 --> 00:46:41,080
Nu vet jag inte exakt vad de siffrorna säger
1324 00:46:41,080 --> 00:46:42,440
Men det är ju en
1325 00:46:42,440 --> 00:46:44,060
Man kan twillna det i alla fall
1326 00:46:44,060 --> 00:46:45,300
Har ni patchat?
1327 00:46:45,760 --> 00:46:45,960
Ja
1328 00:46:45,960 --> 00:46:49,600
Men gamers och sånt
1329 00:46:49,600 --> 00:46:52,180
De har ju kört ett antal tester
1330 00:46:52,180 --> 00:46:54,300
Och några enstaka spel
1331 00:46:54,300 --> 00:46:56,500
Visar ju upp någon förändring
1332 00:46:56,500 --> 00:46:57,320
Överhuvudtaget
1333 00:46:57,320 --> 00:46:59,760
De flesta spelen, ingen förändring alls
1334 00:46:59,760 --> 00:47:01,660
Nej men det som lider mest är väl
1335 00:47:01,660 --> 00:47:04,060
IO-intensiva grejer som databas
1336 00:47:04,060 --> 00:47:05,780
Jag vet att påskreskväll bland annat
1337 00:47:05,780 --> 00:47:07,920
Var svårt drabbat
1338 00:47:07,920 --> 00:47:08,800
Och sen är det väl om
1339 00:47:08,800 --> 00:47:09,320
Mycket kernelanrop
1340 00:47:09,320 --> 00:47:12,160
Om du switchar kontext mellan kernel
1341 00:47:12,160 --> 00:47:14,140
Och user process många gånger
1342 00:47:14,140 --> 00:47:15,520
Då måste du väl få större
1343 00:47:15,520 --> 00:47:16,200
För det är ju den här
1344 00:47:16,200 --> 00:47:18,860
Du får en separat page table för kerneldelarna
1345 00:47:18,860 --> 00:47:21,160
Nu är det ju så att IO brukar ju vara minnesmappat
1346 00:47:21,160 --> 00:47:21,620
Nu för tiden
1347 00:47:21,620 --> 00:47:23,960
Så vad betyder det på svenska?
1348 00:47:24,780 --> 00:47:28,540
Du använder din page table
1349 00:47:28,540 --> 00:47:29,460
För att mappa upp en fil
1350 00:47:29,460 --> 00:47:31,960
Så att du behöver inte göra en kernel swap
1351 00:47:31,960 --> 00:47:32,480
I så fall
1352 00:47:32,480 --> 00:47:38,160
Förr
1353 00:47:38,160 --> 00:47:39,160
Så hade man en buffer
1354 00:47:39,160 --> 00:47:41,860
Som man hämtade från sin buffer
1355 00:47:41,860 --> 00:47:44,880
Och så jobbade man med den
1356 00:47:44,880 --> 00:47:45,900
Och sen la man den någonstans
1357 00:47:45,900 --> 00:47:48,320
Det tyckte man blev omodernt
1358 00:47:48,320 --> 00:47:49,160
Någon gång på 90-talet
1359 00:47:49,160 --> 00:47:51,900
Nu lägger man filer, minnesmappas
1360 00:47:51,900 --> 00:47:53,760
In i processen som virtuellt minne
1361 00:47:53,760 --> 00:47:57,360
Så därför blir ju IO-intensivt
1362 00:47:57,360 --> 00:48:00,840
Mycket förändring av din page table
1363 00:48:00,840 --> 00:48:02,200
Men är det inte också så att
1364 00:48:02,200 --> 00:48:04,200
Nu förlitar man sig jävligt mycket på GPU’n också
1365 00:48:04,200 --> 00:48:05,780
Men GPU’n är ju den som
1366 00:48:05,780 --> 00:48:07,920
Renderar och kör mycket av det tunga
1367 00:48:07,920 --> 00:48:09,120
Om du spelar ja
1368 00:48:09,160 --> 00:48:11,700
Just i gaming-alternativet
1369 00:48:11,700 --> 00:48:12,960
Så då är man ju inte där om alla
1370 00:48:12,960 --> 00:48:15,660
FPS’en kommer ju inte bli lignande
1371 00:48:15,660 --> 00:48:17,700
Det är väl det enda man bryr sig om
1372 00:48:17,700 --> 00:48:20,040
Latency är viktigt också
1373 00:48:20,040 --> 00:48:21,660
Om nätverket
1374 00:48:21,660 --> 00:48:23,120
Och hertz förstod jag
1375 00:48:23,120 --> 00:48:25,440
Det var roligt
1376 00:48:25,440 --> 00:48:28,280
Vi har en yngre förmåga
1377 00:48:28,280 --> 00:48:29,860
I familjen som har
1378 00:48:29,860 --> 00:48:31,540
Börjat spela avlägset
1379 00:48:31,540 --> 00:48:33,380
Jag känner inte, men han tycker
1380 00:48:33,380 --> 00:48:34,840
Det är för stor det plötsligt
1381 00:48:34,840 --> 00:48:38,320
Att börja prata spel och prylar
1382 00:48:38,320 --> 00:48:39,040
Jag höll ändå på
1383 00:48:39,160 --> 00:48:41,460
Klocka saker när jag var liten
1384 00:48:41,460 --> 00:48:43,880
Körde liksom peltier och vattenkylning
1385 00:48:43,880 --> 00:48:44,220
Och grejer
1386 00:48:44,220 --> 00:48:46,160
Hade ändå ganska bra koll då
1387 00:48:46,160 --> 00:48:48,100
Våldtmoddade mina moderkort
1388 00:48:48,100 --> 00:48:49,060
Jag höll på liksom
1389 00:48:49,060 --> 00:48:50,760
Helt obrukbara var datorerna
1390 00:48:50,760 --> 00:48:51,580
Men de gick snabbt
1391 00:48:51,580 --> 00:48:52,540
Det var inte så länge sedan
1392 00:48:52,540 --> 00:48:55,500
Nej, inte för dig
1393 00:48:55,500 --> 00:48:56,620
Farbror
1394 00:48:56,620 --> 00:48:58,800
Ska jag hjälpa dig ner för trappan?
1395 00:48:58,980 --> 00:48:59,780
Hur som helst
1396 00:48:59,780 --> 00:49:02,140
För att komma till poängen då
1397 00:49:02,140 --> 00:49:05,840
Det bara ramlar ju massa ord i den här lilla prylen
1398 00:49:05,840 --> 00:49:07,740
Som jag inte hade en aning om
1399 00:49:07,740 --> 00:49:09,140
Ja, det kändes som att jag hade en aning om det
1400 00:49:09,160 --> 00:49:10,300
Pratar vi om samma sak
1401 00:49:10,300 --> 00:49:13,080
Och då var det en massa såna här fräcka gamersaker
1402 00:49:13,080 --> 00:49:14,500
Som jag inte hade koll på
1403 00:49:14,500 --> 00:49:15,640
Så nu är Jesper farbror
1404 00:49:15,640 --> 00:49:16,980
Tydligt
1405 00:49:16,980 --> 00:49:19,280
Jag spelar inte någonting
1406 00:49:19,280 --> 00:49:20,500
Jag har aldrig kunnat göra det
1407 00:49:20,500 --> 00:49:21,200
För jag är så dålig
1408 00:49:21,200 --> 00:49:23,400
Men spännande
1409 00:49:23,400 --> 00:49:26,440
Skulle du komma någonstans där?
1410 00:49:26,540 --> 00:49:27,400
Jag har tappat tråden
1411 00:49:27,400 --> 00:49:30,800
Alltså det är så mycket input här
1412 00:49:30,800 --> 00:49:32,180
Det blir en sån sensory overload
1413 00:49:32,180 --> 00:49:34,040
Vi snackar ju impact då
1414 00:49:34,040 --> 00:49:36,240
Och man kan ju säga att impacten
1415 00:49:36,240 --> 00:49:37,380
I det här fallet som vi pratar om
1416 00:49:37,380 --> 00:49:39,000
Är på grund av
1417 00:49:39,000 --> 00:49:39,700
Patchen då
1418 00:49:39,700 --> 00:49:42,000
Så det är ju egentligen inte den primära impacten
1419 00:49:42,000 --> 00:49:42,920
Det är en secondary impact
1420 00:49:42,920 --> 00:49:47,280
Framförallt körd delade miljöer på olika sätt
1421 00:49:47,280 --> 00:49:49,040
Ja, när du har flera
1422 00:49:49,040 --> 00:49:50,780
Multitenant, alltså flera användare
1423 00:49:50,780 --> 00:49:52,840
Som kör kod i samma hårdvara
1424 00:49:52,840 --> 00:49:53,840
Typ The Cloud
1425 00:49:53,840 --> 00:49:56,440
The Cloud är ju extremt drabbade av det här
1426 00:49:56,440 --> 00:49:58,540
Och även dockermiljöer och sån skit
1427 00:49:58,540 --> 00:50:00,060
De som tryckte klisternappen
1428 00:50:00,060 --> 00:50:03,240
There is no cloud, just other people’s computers
1429 00:50:03,240 --> 00:50:04,280
Hade ganska rätt
1430 00:50:04,280 --> 00:50:07,240
Men jag lyssnade på Risky Business
1431 00:50:07,240 --> 00:50:08,840
Där Mr. Pone och Oliver
1432 00:50:08,840 --> 00:50:10,240
Fings försökte då
1433 00:50:10,240 --> 00:50:11,540
Förklara det här
1434 00:50:11,540 --> 00:50:14,060
Och de kom ju fram till att
1435 00:50:14,060 --> 00:50:15,120
Ja alltså
1436 00:50:15,120 --> 00:50:17,540
Inte lovande över dem
1437 00:50:17,540 --> 00:50:19,040
De kommer ju lösa det här
1438 00:50:19,040 --> 00:50:22,260
Så att i framtiden så kommer vi inte behöva
1439 00:50:22,260 --> 00:50:24,340
De här patcharna utan då kommer ju hårdvaran
1440 00:50:24,340 --> 00:50:26,180
Ha en bra avvägning
1441 00:50:26,180 --> 00:50:28,280
Mellan prestanda och säkerhet här
1442 00:50:28,280 --> 00:50:29,660
För att få bort
1443 00:50:29,660 --> 00:50:30,940
Så vi inte behöver ha patchen
1444 00:50:30,940 --> 00:50:33,800
Så vi kommer nog bara behöva leva med det här problemet
1445 00:50:33,800 --> 00:50:35,080
I typ 20 år
1446 00:50:35,080 --> 00:50:38,320
Jo men det är ganska intressant
1447 00:50:38,320 --> 00:50:38,680
För att
1448 00:50:38,680 --> 00:50:40,600
Som du sa Z gick ut ganska tidigt
1449 00:50:40,600 --> 00:50:41,960
Och sa just det att vad är solution
1450 00:50:41,960 --> 00:50:44,560
Change to new CPUs
1451 00:50:44,560 --> 00:50:46,840
Nu har de backat på det
1452 00:50:46,840 --> 00:50:48,960
För Intel har ju varit på dem
1453 00:50:48,960 --> 00:50:49,980
Så in i helvete
1454 00:50:49,980 --> 00:50:52,400
Tänk om Z går ut som är då
1455 00:50:52,400 --> 00:50:54,680
Department of Homeland Security
1456 00:50:54,680 --> 00:50:56,560
Om de går ut och säger att
1457 00:50:56,560 --> 00:50:58,560
Solution är byt CPU
1458 00:50:58,560 --> 00:51:00,800
Då kan du tänka dig att class action låshuts
1459 00:51:00,800 --> 00:51:02,600
De kommer lyckas allihopa
1460 00:51:03,200 --> 00:51:04,400
Alltså framförallt
1461 00:51:04,400 --> 00:51:06,480
Innan det finns några färdiga CPUer
1462 00:51:06,480 --> 00:51:08,600
På marknaden så är det ju liksom såhär
1463 00:51:08,680 --> 00:51:10,740
Det är ju en ganska fin idealisfix
1464 00:51:10,740 --> 00:51:12,420
Men är den så tillämpbar
1465 00:51:12,420 --> 00:51:14,060
För de säger ju det
1466 00:51:14,060 --> 00:51:15,700
Det är väl typ ett år i alla fall
1467 00:51:15,700 --> 00:51:17,360
Innan vi har nya CPUer på plats
1468 00:51:17,360 --> 00:51:18,120
Minst
1469 00:51:18,120 --> 00:51:20,680
Du måste byta arkitektur
1470 00:51:20,680 --> 00:51:24,180
Ett år minst
1471 00:51:24,180 --> 00:51:25,820
Ja det är nog rejält minst
1472 00:51:25,820 --> 00:51:28,560
Jag tänker att det är kanske därför
1473 00:51:28,560 --> 00:51:30,360
Som Intels vd tänkte
1474 00:51:30,360 --> 00:51:31,340
Det var läge
1475 00:51:31,340 --> 00:51:32,480
Nu är det ju dags att ta den
1476 00:51:32,480 --> 00:51:34,240
Så vad var det som hände där
1477 00:51:34,240 --> 00:51:37,160
Han sålde precis innan det blev publikt
1478 00:51:37,160 --> 00:51:37,720
Nej
1479 00:51:37,720 --> 00:51:38,040
Nej
1480 00:51:38,680 --> 00:51:41,860
Han gick ut och för att då inte åka på
1481 00:51:41,860 --> 00:51:43,700
En uppenbar
1482 00:51:43,700 --> 00:51:44,780
Insider trading
1483 00:51:44,780 --> 00:51:47,740
Skandal
1484 00:51:47,740 --> 00:51:49,360
Så använde han sig av
1485 00:51:49,360 --> 00:51:52,420
En speciell notifierings
1486 00:51:52,420 --> 00:51:54,100
Mekanism som han då
1487 00:51:54,100 --> 00:51:56,060
Alltså att han går ut och talar om
1488 00:51:56,060 --> 00:51:57,960
I oktober att jag tänker
1489 00:51:57,960 --> 00:52:00,240
Avyttra en vansinnig massa
1490 00:52:00,240 --> 00:52:01,500
Aktier i november
1491 00:52:01,500 --> 00:52:03,940
För att ge marknaden
1492 00:52:03,940 --> 00:52:05,280
Fair warning
1493 00:52:05,280 --> 00:52:07,640
Och sen så sålde han aktier för
1494 00:52:07,640 --> 00:52:08,640
Jag tror det var 36
1495 00:52:08,680 --> 00:52:09,560
Miljoner dollar
1496 00:52:09,560 --> 00:52:10,820
Eller motsvarande
1497 00:52:10,820 --> 00:52:12,860
Det är en och annan krona
1498 00:52:12,860 --> 00:52:13,820
Och
1499 00:52:13,820 --> 00:52:16,020
Det slutar ju då med att han
1500 00:52:16,020 --> 00:52:18,040
Han bara har kvar 250 000
1501 00:52:18,040 --> 00:52:19,620
Bara 250 000
1502 00:52:19,620 --> 00:52:21,060
Intel aktier
1503 00:52:21,060 --> 00:52:22,920
För det är det minsta som
1504 00:52:22,920 --> 00:52:26,120
Som styrelsen kräver att vdn ska äga
1505 00:52:26,120 --> 00:52:27,540
Jag tror det är avtal på det till och med
1506 00:52:27,540 --> 00:52:29,280
Han får inte sälja
1507 00:52:29,280 --> 00:52:30,620
Han får inte sälja
1508 00:52:30,620 --> 00:52:31,380
Men i alla fall
1509 00:52:31,380 --> 00:52:31,820
Det hörde jag också
1510 00:52:31,820 --> 00:52:33,540
Det är alltså
1511 00:52:33,540 --> 00:52:35,160
Han går alltså ut
1512 00:52:35,160 --> 00:52:37,020
Talar om att jag tänker sälja
1513 00:52:37,020 --> 00:52:37,360
Och
1514 00:52:37,360 --> 00:52:38,560
Det här menar han att han ska sälja
1515 00:52:38,560 --> 00:52:38,580
Det här menar han att han ska sälja
1516 00:52:38,580 --> 00:52:39,100
Han hör ju på att
1517 00:52:39,100 --> 00:52:40,100
Nej men det är ju inte insider
1518 00:52:40,100 --> 00:52:42,340
Jag har ju använt mig av den här mekanismen
1519 00:52:42,340 --> 00:52:43,260
Ja fast Intel
1520 00:52:43,260 --> 00:52:44,340
Du har inte sagt varför
1521 00:52:44,340 --> 00:52:46,800
Intel fick ju reda på det här i juni
1522 00:52:46,800 --> 00:52:48,640
I början av juni till och med
1523 00:52:48,640 --> 00:52:49,600
Man kan ju säga såhär
1524 00:52:49,600 --> 00:52:50,840
Skitsamma marknaden vet om det
1525 00:52:50,840 --> 00:52:52,180
Du vet ju någonting som de inte vet
1526 00:52:52,180 --> 00:52:53,000
Ja
1527 00:52:53,000 --> 00:52:54,620
Sen är ju frågan
1528 00:52:54,620 --> 00:52:56,060
Är det påvisat
1529 00:52:56,060 --> 00:52:57,560
Eller kan man påvisa att han
1530 00:52:57,560 --> 00:52:59,340
Att han hade den informationen
1531 00:52:59,340 --> 00:52:59,540
Då
1532 00:52:59,540 --> 00:53:01,500
Det tror jag är ganska
1533 00:53:01,500 --> 00:53:02,740
Ingen information
1534 00:53:02,740 --> 00:53:03,780
Borde han ju rimligtvis ha det
1535 00:53:03,780 --> 00:53:05,400
Annars har han ju gjort ett dåligt jobb
1536 00:53:05,400 --> 00:53:05,740
Om inte annat
1537 00:53:05,740 --> 00:53:06,140
Ja
1538 00:53:06,140 --> 00:53:07,300
Alltså jag har svårt
1539 00:53:07,300 --> 00:53:07,980
Det är såhär
1540 00:53:07,980 --> 00:53:08,460
Han hade ju blivit
1541 00:53:08,460 --> 00:53:11,040
Han måste ju ha reda på det här
1542 00:53:11,040 --> 00:53:11,580
Det är ingen sak att säga
1543 00:53:11,580 --> 00:53:12,480
Men sen är ju frågan om
1544 00:53:12,480 --> 00:53:14,580
Om det är det han har agerat på
1545 00:53:14,580 --> 00:53:15,440
Om han
1546 00:53:15,440 --> 00:53:17,000
Om de gjorde den bedömningen på Intel
1547 00:53:17,000 --> 00:53:18,200
Att det här skulle vara så allvarligt
1548 00:53:18,200 --> 00:53:19,240
Det är ju en annan fråga
1549 00:53:19,240 --> 00:53:20,680
Ja han kanske blev så ledsen
1550 00:53:20,680 --> 00:53:21,920
Att han tröttnade på att jobba på Intel
1551 00:53:21,920 --> 00:53:22,740
Och därför sålde han
1552 00:53:22,740 --> 00:53:24,580
Men han sålde när
1553 00:53:24,580 --> 00:53:26,820
Jag tror att han började köpa
1554 00:53:26,820 --> 00:53:28,480
Intel-aktien på sin högsta värdering
1555 00:53:28,480 --> 00:53:29,580
På 16 års tid
1556 00:53:29,580 --> 00:53:30,440
Eller något när han sålde
1557 00:53:30,440 --> 00:53:31,320
Det kanske var så att
1558 00:53:31,320 --> 00:53:32,440
Säljer man så mycket
1559 00:53:32,440 --> 00:53:33,200
Och är vd
1560 00:53:33,200 --> 00:53:33,980
Då kanske det
1561 00:53:33,980 --> 00:53:35,520
Då går aktierna ner efteråt
1562 00:53:35,520 --> 00:53:38,120
Hur gott för Intels aktier
1563 00:53:38,120 --> 00:53:38,400
Tror du
1564 00:53:38,400 --> 00:53:38,440
Ja
1565 00:53:38,460 --> 00:53:38,820
I och för sig
1566 00:53:38,820 --> 00:53:40,320
Det var något sånt som du sa nu
1567 00:53:40,320 --> 00:53:41,740
Att det var högsta någonsin
1568 00:53:41,740 --> 00:53:43,800
Tror jag när han sålde
1569 00:53:43,800 --> 00:53:45,500
Så han kanske bara skulle ta hem lite vinst
1570 00:53:45,500 --> 00:53:46,060
Mm
1571 00:53:46,060 --> 00:53:47,220
Ja
1572 00:53:47,220 --> 00:53:48,660
Och sen då så
1573 00:53:48,660 --> 00:53:51,660
Tre dagar efter kursen har rasat
1574 00:53:51,660 --> 00:53:52,880
Så köpte han tillbaka
1575 00:53:52,880 --> 00:53:54,180
Lika mycket aktier
1576 00:53:54,180 --> 00:53:54,880
Och gjorde en liten gul
1577 00:53:54,880 --> 00:53:55,820
Nej jag skojar
1578 00:53:55,820 --> 00:53:57,380
Det hade varit svindeligt
1579 00:53:57,380 --> 00:53:58,380
Om han gjorde det dock
1580 00:53:58,380 --> 00:54:00,220
Det hade varit skottpengar i så fall
1581 00:54:00,220 --> 00:54:03,620
Genom något bolag någonstans
1582 00:54:03,620 --> 00:54:04,760
Det hade varit jättekul
1583 00:54:04,760 --> 00:54:05,880
Alltså jag måste ju känna
1584 00:54:05,880 --> 00:54:07,760
Det är ju svårt
1585 00:54:07,760 --> 00:54:08,400
Att behålla jobbet
1586 00:54:08,400 --> 00:54:08,640
På ett täft
1587 00:54:08,640 --> 00:54:09,140
En sån grej
1588 00:54:09,140 --> 00:54:10,200
Alltså mycket svårt
1589 00:54:10,200 --> 00:54:10,500
Men ja
1590 00:54:10,500 --> 00:54:11,320
Vi får se vad som händer
1591 00:54:11,320 --> 00:54:12,500
Ja
1592 00:54:12,500 --> 00:54:13,540
Vi får väl se
1593 00:54:13,540 --> 00:54:15,620
Vad Securities and Exchange Commission
1594 00:54:15,620 --> 00:54:16,180
Kommer fram till
1595 00:54:16,180 --> 00:54:16,660
Okej
1596 00:54:16,660 --> 00:54:17,820
Vi har pratat lite om mitigering
1597 00:54:17,820 --> 00:54:19,180
Vi sa Kaiser för Meltdown
1598 00:54:19,180 --> 00:54:19,960
Och för Spectre
1599 00:54:19,960 --> 00:54:21,280
Finns ingenting i dagsläget
1600 00:54:21,280 --> 00:54:21,640
Nej
1601 00:54:21,640 --> 00:54:23,580
Vi kan ju också säga
1602 00:54:23,580 --> 00:54:24,300
Det finns ju inte så mycket
1603 00:54:24,300 --> 00:54:25,320
Attack in the wild
1604 00:54:25,320 --> 00:54:26,260
Bortsett från givetvis
1605 00:54:26,260 --> 00:54:27,700
Den javascript-pocken
1606 00:54:27,700 --> 00:54:28,080
Det finns ju en pock
1607 00:54:28,080 --> 00:54:28,820
Precis ja
1608 00:54:28,820 --> 00:54:29,680
Det finns pockkod
1609 00:54:29,680 --> 00:54:30,720
Men inte så mycket så här
1610 00:54:30,720 --> 00:54:32,640
Ondangripare använder det här
1611 00:54:32,640 --> 00:54:33,600
Som vi vet om
1612 00:54:33,600 --> 00:54:34,160
Nej precis
1613 00:54:34,160 --> 00:54:35,860
Men för en av varianterna
1614 00:54:35,860 --> 00:54:36,340
Av Spectre
1615 00:54:36,340 --> 00:54:37,760
Så har ju Microsoft
1616 00:54:37,760 --> 00:54:40,000
Försökt patcha det
1617 00:54:40,000 --> 00:54:40,340
Som vi sa
1618 00:54:40,340 --> 00:54:41,000
Alltså de
1619 00:54:41,000 --> 00:54:42,160
De
1620 00:54:42,160 --> 00:54:43,960
New care
1621 00:54:43,960 --> 00:54:45,080
Branch prediction buffrar
1622 00:54:45,080 --> 00:54:45,980
När man
1623 00:54:45,980 --> 00:54:47,240
Biter från en process
1624 00:54:47,240 --> 00:54:47,820
Till en annan
1625 00:54:47,820 --> 00:54:49,000
Okej
1626 00:54:49,000 --> 00:54:50,300
För det stod ju även i papperna
1627 00:54:50,300 --> 00:54:51,000
Ganska mycket om
1628 00:54:51,000 --> 00:54:52,140
Om mitigering då
1629 00:54:52,140 --> 00:54:53,640
Just på Spectre
1630 00:54:53,640 --> 00:54:55,360
Så var det ju så att
1631 00:54:55,360 --> 00:54:56,320
Då sa den där
1632 00:54:56,320 --> 00:54:57,200
Ja det finns en del grejer
1633 00:54:57,200 --> 00:54:57,580
Man kan göra
1634 00:54:57,580 --> 00:54:58,860
Men ingenting som riktigt hjälper
1635 00:54:58,860 --> 00:54:59,800
Som till exempel
1636 00:54:59,800 --> 00:55:00,600
En logisk grej
1637 00:55:00,600 --> 00:55:01,760
För att bli av med den här
1638 00:55:01,760 --> 00:55:03,340
Cash-sidkanalen
1639 00:55:03,340 --> 00:55:03,720
Det är ju
1640 00:55:03,720 --> 00:55:06,080
Ja vi flashar cashen också då
1641 00:55:06,080 --> 00:55:07,120
När vi
1642 00:55:07,120 --> 00:55:07,240
När vi
1643 00:55:07,240 --> 00:55:07,740
När vi
1644 00:55:07,760 --> 00:55:08,400
Vi flashar allt annat
1645 00:55:08,400 --> 00:55:09,020
När vi har gjort en
1646 00:55:09,020 --> 00:55:10,020
En misprediction liksom
1647 00:55:10,020 --> 00:55:11,200
Så flashar vi cashen också
1648 00:55:11,200 --> 00:55:12,440
Men då sa de ju bara att
1649 00:55:12,440 --> 00:55:13,460
Ja det här är ju inte
1650 00:55:13,460 --> 00:55:14,440
Enda sidokanalen
1651 00:55:14,440 --> 00:55:15,620
Det finns massor med sådana här
1652 00:55:15,620 --> 00:55:16,680
Timings i din kanal
1653 00:55:16,680 --> 00:55:17,660
Som du kan använda
1654 00:55:17,660 --> 00:55:18,760
Så det här var bara en av dem
1655 00:55:18,760 --> 00:55:20,120
Det tyckte jag annars
1656 00:55:20,120 --> 00:55:21,040
Var en superenkel lösning
1657 00:55:21,040 --> 00:55:22,760
Jag läste någonstans
1658 00:55:22,760 --> 00:55:24,240
Där de
1659 00:55:24,240 --> 00:55:25,920
Gjorde en
1660 00:55:25,920 --> 00:55:27,240
En fix
1661 00:55:27,240 --> 00:55:28,680
Som handlade alltså
1662 00:55:28,680 --> 00:55:29,360
Om att man
1663 00:55:29,360 --> 00:55:30,560
Gjorde
1664 00:55:30,560 --> 00:55:32,720
Timern
1665 00:55:32,720 --> 00:55:34,220
Mindre noggrann
1666 00:55:34,220 --> 00:55:35,400
Det vill säga att man
1667 00:55:35,400 --> 00:55:37,140
Var det en delay eller någonting
1668 00:55:37,140 --> 00:55:37,740
Ja att man
1669 00:55:37,740 --> 00:55:38,900
Man har in en osäkerhet
1670 00:55:38,900 --> 00:55:39,520
I timern
1671 00:55:39,520 --> 00:55:41,080
Ja
1672 00:55:41,080 --> 00:55:41,880
Ja
1673 00:55:41,880 --> 00:55:42,460
Det är sant
1674 00:55:42,460 --> 00:55:43,780
För då blir det svårt att veta
1675 00:55:43,780 --> 00:55:44,220
Liksom
1676 00:55:44,220 --> 00:55:44,600
Vad
1677 00:55:44,600 --> 00:55:46,120
Vad var det som träffade
1678 00:55:46,120 --> 00:55:47,400
Det blir svårare att mäta
1679 00:55:47,400 --> 00:55:48,680
Du liksom
1680 00:55:48,680 --> 00:55:49,880
Får en träff
1681 00:55:49,880 --> 00:55:51,300
Inom samma millisekund
1682 00:55:51,300 --> 00:55:52,480
Men det är
1683 00:55:52,480 --> 00:55:52,980
Det är för lite
1684 00:55:52,980 --> 00:55:54,420
Det är ju
1685 00:55:54,420 --> 00:55:56,440
Vi som har varit på
1686 00:55:56,440 --> 00:55:57,700
Oras på Göteborg idag
1687 00:55:57,700 --> 00:55:58,420
Inga annat så
1688 00:55:58,420 --> 00:55:58,980
Har det ju varit
1689 00:55:58,980 --> 00:56:00,760
Många sådana här grejer
1690 00:56:00,760 --> 00:56:01,160
Där
1691 00:56:01,160 --> 00:56:02,780
Att man ger
1692 00:56:02,780 --> 00:56:04,140
Javascript tillgång
1693 00:56:04,140 --> 00:56:05,100
Till för noggrann
1694 00:56:05,100 --> 00:56:05,640
Information
1695 00:56:05,640 --> 00:56:07,520
Är lite dumt
1696 00:56:07,520 --> 00:56:07,720
Det är ju
1697 00:56:07,740 --> 00:56:08,080
Det är ju som
1698 00:56:08,080 --> 00:56:09,240
Att man kunde
1699 00:56:09,240 --> 00:56:09,880
Unikt
1700 00:56:09,880 --> 00:56:10,960
Enumerera datorer
1701 00:56:10,960 --> 00:56:12,360
Utifrån hur deras batteri
1702 00:56:12,360 --> 00:56:13,120
Betedde sig
1703 00:56:13,120 --> 00:56:14,460
Och några andra sådana här grejer
1704 00:56:14,460 --> 00:56:15,620
För jag tror att
1705 00:56:15,620 --> 00:56:16,680
Där jag läste det
1706 00:56:16,680 --> 00:56:17,640
Det var en
1707 00:56:17,640 --> 00:56:18,700
Undrar om det inte var
1708 00:56:18,700 --> 00:56:19,560
Webkit
1709 00:56:19,560 --> 00:56:22,180
Jag tror att det var
1710 00:56:22,180 --> 00:56:23,400
Som hade gjort
1711 00:56:23,400 --> 00:56:24,540
Alltså försämrat
1712 00:56:24,540 --> 00:56:25,740
Timerprecisionen
1713 00:56:26,340 --> 00:56:27,380
För att mitigera
1714 00:56:27,380 --> 00:56:29,440
Okej så det är om
1715 00:56:29,440 --> 00:56:30,020
Mitigering
1716 00:56:30,020 --> 00:56:33,100
Vi har nämnt lite om
1717 00:56:33,100 --> 00:56:33,900
Impact också
1718 00:56:33,900 --> 00:56:35,060
I alla fall
1719 00:56:35,060 --> 00:56:36,500
Det vi vet just nu
1720 00:56:37,740 --> 00:56:40,680
AMD
1721 00:56:40,680 --> 00:56:42,980
Hävdar ju att de inte är sårbara
1722 00:56:42,980 --> 00:56:43,320
För
1723 00:56:43,320 --> 00:56:44,700
Meltdown
1724 00:56:44,700 --> 00:56:44,980
Ja det
1725 00:56:44,980 --> 00:56:45,960
Ja precis
1726 00:56:45,960 --> 00:56:46,460
Ja det finns
1727 00:56:46,460 --> 00:56:47,440
I pappret säger det också
1728 00:56:47,440 --> 00:56:48,780
Vi har inte hittat något på Meltdown
1729 00:56:48,780 --> 00:56:49,320
Men
1730 00:56:49,320 --> 00:56:50,600
Typ
1731 00:56:50,600 --> 00:56:52,260
De tror att lite små förändringar
1732 00:56:52,260 --> 00:56:53,640
Antyder de skulle kunna funka
1733 00:56:53,640 --> 00:56:54,700
För de vet inte riktigt
1734 00:56:54,700 --> 00:56:55,380
Varför det inte funkar
1735 00:56:55,380 --> 00:56:57,800
Vad ska
1736 00:56:57,800 --> 00:56:59,420
Våra användare där ute
1737 00:56:59,420 --> 00:56:59,980
Som då kanske
1738 00:56:59,980 --> 00:57:01,920
Om vi snackar vanliga användare
1739 00:57:01,920 --> 00:57:02,760
Vad ska de göra
1740 00:57:02,760 --> 00:57:03,760
Patcha Chrome
1741 00:57:03,760 --> 00:57:05,460
Har det kommit
1742 00:57:05,460 --> 00:57:06,760
Det har kommit idag
1743 00:57:06,760 --> 00:57:07,080
Tror jag
1744 00:57:07,080 --> 00:57:07,720
Ja
1745 00:57:07,740 --> 00:57:09,080
En patch för Chrome
1746 00:57:09,080 --> 00:57:11,580
IOS som vi nämnde förut
1747 00:57:11,580 --> 00:57:12,500
Har jag inte kunnat patcha för
1748 00:57:12,500 --> 00:57:12,520
IOS också
1749 00:57:12,520 --> 00:57:12,900
Ja
1750 00:57:12,900 --> 00:57:13,520
Precis
1751 00:57:13,520 --> 00:57:13,840
Din
1752 00:57:13,840 --> 00:57:15,940
Ditt operativsystem
1753 00:57:15,940 --> 00:57:17,080
Och din webbläsare
1754 00:57:17,080 --> 00:57:18,800
Ska ju helst alltid vara patchad
1755 00:57:18,800 --> 00:57:20,040
Till senaste säkerhetsnivå
1756 00:57:20,040 --> 00:57:20,980
Och det är inte fel
1757 00:57:20,980 --> 00:57:22,680
Att använda en adblocker heller
1758 00:57:22,680 --> 00:57:23,440
Nej
1759 00:57:23,440 --> 00:57:24,800
Nej det är det ju faktiskt
1760 00:57:24,800 --> 00:57:27,620
Det kan vara en bra idé
1761 00:57:27,620 --> 00:57:28,960
Generellt
1762 00:57:28,960 --> 00:57:30,080
Och sen är det ju så då
1763 00:57:30,080 --> 00:57:30,960
Att de flesta
1764 00:57:30,960 --> 00:57:32,320
Cloud-leverantörer
1765 00:57:32,320 --> 00:57:33,380
Har ju redan patchat
1766 00:57:33,380 --> 00:57:34,920
Så det är egentligen
1767 00:57:34,920 --> 00:57:36,100
Om du kör någon egen
1768 00:57:36,100 --> 00:57:37,000
Virtualisering
1769 00:57:37,000 --> 00:57:37,600
Sitter på
1770 00:57:37,600 --> 00:57:39,160
Det är ju dessutom
1771 00:57:39,160 --> 00:57:40,580
Och andra användare inne
1772 00:57:40,580 --> 00:57:41,620
Som exekverar grejer
1773 00:57:41,620 --> 00:57:42,700
Då kan det vara
1774 00:57:42,700 --> 00:57:43,860
Sjukt bra
1775 00:57:43,860 --> 00:57:44,620
Det är något av ett edge-kris
1776 00:57:44,620 --> 00:57:45,280
Bland våra lyssnare
1777 00:57:45,280 --> 00:57:45,580
Kanske
1778 00:57:45,580 --> 00:57:47,860
Men pratade vi någon gång
1779 00:57:47,860 --> 00:57:49,000
Om hur Rowhammer
1780 00:57:49,000 --> 00:57:49,780
Var fixad
1781 00:57:49,780 --> 00:57:50,860
Nej
1782 00:57:50,860 --> 00:57:51,860
Eftersom det här
1783 00:57:51,860 --> 00:57:53,020
Handlar om spektra
1784 00:57:53,020 --> 00:57:54,900
Så gjorde jag det
1785 00:57:54,900 --> 00:57:55,640
Det är lite samma sak
1786 00:57:55,640 --> 00:57:57,120
Du kan få en bitflip där
1787 00:57:57,120 --> 00:57:58,420
Men i cloud-sammanhang
1788 00:57:58,420 --> 00:57:59,300
Så
1789 00:57:59,300 --> 00:58:03,100
Så har ju
1790 00:58:03,100 --> 00:58:04,260
Tydligen Amazon
1791 00:58:04,260 --> 00:58:05,280
Och de stora
1792 00:58:05,280 --> 00:58:06,660
Seriösa leverantörerna
1793 00:58:06,660 --> 00:58:07,300
De har ju
1794 00:58:07,300 --> 00:58:08,460
Dels sådana
1795 00:58:08,460 --> 00:58:09,700
Error-correcting
1796 00:58:09,700 --> 00:58:12,440
RAM-chip
1797 00:58:12,440 --> 00:58:14,720
Så att små fel
1798 00:58:14,720 --> 00:58:15,600
Upptäcks och blir
1799 00:58:15,600 --> 00:58:16,560
Självkorrigerade
1800 00:58:16,560 --> 00:58:18,580
Och sen så tar de
1801 00:58:18,580 --> 00:58:20,380
Den uppdateringsfrekvensen
1802 00:58:20,380 --> 00:58:22,340
Som chippen är ratade för
1803 00:58:22,340 --> 00:58:22,920
Och så
1804 00:58:22,920 --> 00:58:25,420
Uppdaterar de dubbelt så ofta
1805 00:58:25,420 --> 00:58:25,940
Så att
1806 00:58:25,940 --> 00:58:28,180
Så att de
1807 00:58:28,180 --> 00:58:29,900
Mindre prestanda
1808 00:58:29,900 --> 00:58:30,820
Mer korrekthet
1809 00:58:30,820 --> 00:58:31,800
Blir resultatet
1810 00:58:31,800 --> 00:58:32,060
Och
1811 00:58:32,060 --> 00:58:33,340
Då blir
1812 00:58:33,340 --> 00:58:34,740
Det blir svårare att påverka
1813 00:58:34,740 --> 00:58:34,960
Ja
1814 00:58:34,960 --> 00:58:35,900
Rowhammer
1815 00:58:35,900 --> 00:58:36,620
Blir
1816 00:58:36,620 --> 00:58:37,180
Liksom
1817 00:58:37,180 --> 00:58:40,460
Kan inte reproduceras
1818 00:58:40,460 --> 00:58:41,120
I verkligheten
1819 00:58:41,120 --> 00:58:41,960
Efter att man gjort det
1820 00:58:41,960 --> 00:58:42,740
Och
1821 00:58:42,740 --> 00:58:44,080
Där är ju också sådana här
1822 00:58:44,080 --> 00:58:46,000
Om du går till Amazon
1823 00:58:46,000 --> 00:58:47,300
Som har liksom
1824 00:58:47,300 --> 00:58:48,380
Bra folk
1825 00:58:48,380 --> 00:58:50,000
Då får du det här
1826 00:58:50,000 --> 00:58:51,700
Och om du går på Kalle
1827 00:58:51,700 --> 00:58:52,440
På gatan
1828 00:58:52,440 --> 00:58:53,220
Och ber Kalle
1829 00:58:53,220 --> 00:58:53,780
Om att
1830 00:58:53,780 --> 00:58:56,100
Ge mig Kalles moln
1831 00:58:56,100 --> 00:58:57,380
Då har Kalles moln
1832 00:58:57,380 --> 00:58:58,240
Inte det här
1833 00:58:58,240 --> 00:58:59,960
Så det
1834 00:58:59,960 --> 00:59:00,880
Och det
1835 00:59:00,880 --> 00:59:01,400
Det var
1836 00:59:01,400 --> 00:59:02,220
Pappa jag läste
1837 00:59:02,220 --> 00:59:03,440
Så var det väldigt påtagligt
1838 00:59:03,440 --> 00:59:03,680
Att
1839 00:59:03,680 --> 00:59:04,880
De har ju kollat
1840 00:59:04,880 --> 00:59:05,520
De stora
1841 00:59:05,520 --> 00:59:06,800
Har med mig
1842 00:59:06,800 --> 00:59:07,100
Det där
1843 00:59:07,100 --> 00:59:07,160
Så att
1844 00:59:07,180 --> 00:59:07,680
Rowhammer
1845 00:59:07,680 --> 00:59:08,960
De små
1846 00:59:08,960 --> 00:59:09,780
Herregud
1847 00:59:09,780 --> 00:59:10,900
Där kunde man löpa
1848 00:59:10,900 --> 00:59:11,580
Mok med
1849 00:59:11,580 --> 00:59:12,340
Amazon
1850 00:59:12,340 --> 00:59:13,400
Eller med
1851 00:59:13,400 --> 00:59:14,700
Molinstanserna
1852 00:59:14,700 --> 00:59:17,160
Tänker jag att
1853 00:59:17,160 --> 00:59:18,160
Det var en
1854 00:59:18,160 --> 00:59:19,360
XKCD
1855 00:59:19,360 --> 00:59:20,240
Som
1856 00:59:20,240 --> 00:59:22,640
Berörde just
1857 00:59:22,640 --> 00:59:22,980
Både
1858 00:59:22,980 --> 00:59:24,300
Spectrum
1859 00:59:24,300 --> 00:59:24,760
Meltdown
1860 00:59:24,760 --> 00:59:25,200
Och
1861 00:59:25,200 --> 00:59:26,020
Blandade in
1862 00:59:26,020 --> 00:59:26,560
Rowhammer
1863 00:59:26,560 --> 00:59:27,520
I smeten
1864 00:59:27,520 --> 00:59:28,620
Den var lite underhållande
1865 00:59:28,620 --> 00:59:29,680
Vi får en länke till den
1866 00:59:29,680 --> 00:59:30,640
Som alltid
1867 00:59:30,640 --> 00:59:31,420
Så länkar vi till den
1868 00:59:31,420 --> 00:59:31,740
I våra
1869 00:59:31,740 --> 00:59:32,380
Shownotes
1870 00:59:32,380 --> 00:59:32,680
Precis
1871 00:59:32,680 --> 00:59:33,280
Våra Shownotes
1872 00:59:33,280 --> 00:59:34,480
Som innehåller så mycket länkar
1873 00:59:34,480 --> 00:59:35,280
Men tänk er
1874 00:59:35,280 --> 00:59:35,840
Om man har
1875 00:59:35,840 --> 00:59:36,380
Attakten
1876 00:59:37,180 --> 00:59:37,960
Och system
1877 00:59:37,960 --> 00:59:38,940
Som man attackerar
1878 00:59:38,940 --> 00:59:39,180
Så
1879 00:59:39,180 --> 00:59:41,100
Och du kan
1880 00:59:41,100 --> 00:59:41,800
Både
1881 00:59:41,800 --> 00:59:42,720
Körra
1882 00:59:42,720 --> 00:59:43,380
Rowhammer
1883 00:59:43,380 --> 00:59:43,760
Du kan
1884 00:59:43,760 --> 00:59:44,580
Bittflippa
1885 00:59:44,580 --> 00:59:45,680
Och du kan
1886 00:59:45,680 --> 00:59:47,140
Läsa
1887 00:59:47,140 --> 00:59:48,020
Allt
1888 00:59:48,020 --> 00:59:48,300
Och
1889 00:59:48,300 --> 00:59:49,740
Alltså
1890 00:59:49,740 --> 00:59:51,560
Det är
1891 00:59:51,560 --> 00:59:52,460
Ganska magiskt
1892 00:59:52,460 --> 00:59:52,880
Just hur
1893 00:59:52,880 --> 00:59:53,540
Sårbarheter
1894 00:59:53,540 --> 00:59:54,500
I hårdvaran
1895 00:59:54,500 --> 00:59:55,100
Liksom
1896 00:59:55,100 --> 00:59:55,520
Helt plötsligt
1897 00:59:55,520 --> 00:59:56,260
Börjar bita
1898 00:59:56,260 --> 00:59:57,540
De pekade faktiskt
1899 00:59:57,540 --> 00:59:58,420
På det i
1900 00:59:58,420 --> 00:59:59,140
Meltdown-pappret
1901 00:59:59,140 --> 00:59:59,840
De sa just det
1902 00:59:59,840 --> 01:00:01,980
Multitenant-miljöer
1903 01:00:01,980 --> 01:00:02,580
Som kör lite
1904 01:00:02,580 --> 01:00:03,420
Budgetlösning
1905 01:00:03,420 --> 01:00:03,740
Det vill säga
1906 01:00:03,740 --> 01:00:04,340
De kanske har
1907 01:00:04,340 --> 01:00:05,360
Dockerbaserad
1908 01:00:05,360 --> 01:00:06,000
Multitenant
1909 01:00:06,000 --> 01:00:06,840
De är
1910 01:00:06,840 --> 01:00:08,200
Extra sårbara
1911 01:00:08,200 --> 01:00:08,600
För det här
1912 01:00:08,600 --> 01:00:09,420
Och om de då
1913 01:00:09,420 --> 01:00:10,260
Dessutom som du sa
1914 01:00:10,260 --> 01:00:11,640
Även är extra sårbara
1915 01:00:11,640 --> 01:00:12,980
På grund av dålig koll
1916 01:00:12,980 --> 01:00:13,600
För Rowhammer
1917 01:00:13,600 --> 01:00:14,480
Och inte har någon lösning på det
1918 01:00:14,480 --> 01:00:15,340
Så känns det som att
1919 01:00:15,340 --> 01:00:16,160
Det är det dåliga stället
1920 01:00:16,160 --> 01:00:16,740
Det var just nu
1921 01:00:16,740 --> 01:00:18,220
Jag visste att det var
1922 01:00:18,220 --> 01:00:19,300
En dålig idé med The Cloud
1923 01:00:19,300 --> 01:00:22,780
There is no cloud
1924 01:00:22,780 --> 01:00:23,040
Vad
1925 01:00:23,040 --> 01:00:23,440
Vad
1926 01:00:23,440 --> 01:00:25,040
Vad tror vi om
1927 01:00:25,040 --> 01:00:26,060
Är det här klart nu?
1928 01:00:26,100 --> 01:00:26,820
Är vi färdiga med
1929 01:00:26,820 --> 01:00:27,300
Spektrum-meltan?
1930 01:00:27,320 --> 01:00:28,240
Alltså det känner jag
1931 01:00:28,240 --> 01:00:29,820
Jag känner mig mer
1932 01:00:29,820 --> 01:00:30,460
Som ett frågetecken
1933 01:00:30,460 --> 01:00:31,020
Nu efteråt
1934 01:00:31,020 --> 01:00:31,580
Än innan
1935 01:00:31,580 --> 01:00:32,760
Jag tänker att
1936 01:00:32,760 --> 01:00:33,960
Det här
1937 01:00:33,960 --> 01:00:35,400
Som vi konstaterar
1938 01:00:35,400 --> 01:00:36,220
Det är inte det sista
1939 01:00:36,220 --> 01:00:36,920
Vi kommer att höra
1940 01:00:36,920 --> 01:00:37,280
Av det här
1941 01:00:37,280 --> 01:00:37,580
Nej
1942 01:00:37,580 --> 01:00:38,500
Det är potentiellt
1943 01:00:38,500 --> 01:00:39,520
Toppen på isberget
1944 01:00:39,520 --> 01:00:40,380
Om folk börjar kolla på
1945 01:00:40,380 --> 01:00:40,720
De här grejerna
1946 01:00:40,720 --> 01:00:41,120
Och som du säger
1947 01:00:41,120 --> 01:00:41,760
Det finns många fler
1948 01:00:41,760 --> 01:00:42,420
Sidokanaler
1949 01:00:42,420 --> 01:00:43,760
Som man kan titta på
1950 01:00:43,760 --> 01:00:45,760
Hur lång tid
1951 01:00:45,760 --> 01:00:46,320
Vad har vi för
1952 01:00:46,320 --> 01:00:48,840
Branch prediction på
1953 01:00:48,840 --> 01:00:50,040
Hur lång tid dröjer det
1954 01:00:50,040 --> 01:00:50,920
Innan vi ser en
1955 01:00:50,920 --> 01:00:53,100
Att det här
1956 01:00:53,100 --> 01:00:53,380
Att
1957 01:00:53,380 --> 01:00:54,580
Alltså används i
1958 01:00:54,580 --> 01:00:55,560
Skarpa attacker
1959 01:00:55,560 --> 01:00:57,900
När som helst
1960 01:00:57,900 --> 01:00:58,160
Ja
1961 01:00:58,160 --> 01:00:59,400
Alltså precis
1962 01:00:59,400 --> 01:01:00,180
När som helst
1963 01:01:00,180 --> 01:01:01,220
Det är kort
1964 01:01:01,220 --> 01:01:02,140
Och en annan
1965 01:01:02,140 --> 01:01:03,080
Sån spaning är ju då
1966 01:01:03,080 --> 01:01:03,820
Vad tror vi om
1967 01:01:03,820 --> 01:01:04,760
Three letter agencies
1968 01:01:04,760 --> 01:01:06,060
Har de vetat det här
1969 01:01:06,060 --> 01:01:06,340
Precis
1970 01:01:06,340 --> 01:01:07,220
Det vet man ju inte
1971 01:01:07,220 --> 01:01:07,940
De lär jag veta
1972 01:01:07,940 --> 01:01:09,280
Att det är sen i juni
1973 01:01:09,280 --> 01:01:09,460
Ja
1974 01:01:09,460 --> 01:01:10,520
Det kan jag hålla med om
1975 01:01:10,520 --> 01:01:11,780
Ja
1976 01:01:11,780 --> 01:01:14,180
Det är ju samma
1977 01:01:14,180 --> 01:01:14,620
Jag får en sån här
1978 01:01:14,620 --> 01:01:16,140
Konspirationshatt direkt
1979 01:01:16,140 --> 01:01:16,800
När man så här
1980 01:01:16,800 --> 01:01:19,760
Intels pressrelease
1981 01:01:19,760 --> 01:01:20,140
Där
1982 01:01:20,140 --> 01:01:20,660
Där
1983 01:01:20,660 --> 01:01:21,360
Ja men vi har
1984 01:01:21,360 --> 01:01:22,200
Orditat
1985 01:01:22,200 --> 01:01:23,840
Vi har orditat
1986 01:01:23,840 --> 01:01:24,720
Vår egen
1987 01:01:24,720 --> 01:01:25,300
Intel
1988 01:01:25,300 --> 01:01:26,000
ME
1989 01:01:26,000 --> 01:01:26,760
Pryl
1990 01:01:26,760 --> 01:01:28,440
Och vi har inte
1991 01:01:28,440 --> 01:01:29,180
Hittat någonting
1992 01:01:29,180 --> 01:01:30,680
Och sen i
1993 01:01:30,680 --> 01:01:31,520
I det fördålda
1994 01:01:31,520 --> 01:01:31,740
Var
1995 01:01:31,740 --> 01:01:33,240
Fyra CV’er
1996 01:01:33,240 --> 01:01:33,580
Var
1997 01:01:33,580 --> 01:01:35,160
Vem
1998 01:01:35,160 --> 01:01:35,900
Och så här
1999 01:01:35,900 --> 01:01:36,040
Men
2000 01:01:36,060 --> 01:01:36,880
Vänta lite
2001 01:01:36,880 --> 01:01:38,580
Vänta lite
2002 01:01:38,580 --> 01:01:39,200
Alltså de
2003 01:01:39,200 --> 01:01:40,600
De
2004 01:01:40,600 --> 01:01:41,960
Har ju släppt
2005 01:01:41,960 --> 01:01:43,580
Säkerhetsrättningar
2006 01:01:43,580 --> 01:01:44,060
Till
2007 01:01:44,060 --> 01:01:45,520
Intel ME
2008 01:01:45,520 --> 01:01:46,040
Till
2009 01:01:46,040 --> 01:01:48,100
Intel SGX
2010 01:01:48,100 --> 01:01:49,080
Och till ett antal
2011 01:01:49,080 --> 01:01:50,500
Andra såna här tekniker
2012 01:01:50,500 --> 01:01:51,960
Men det första uttalandet
2013 01:01:51,960 --> 01:01:53,060
Innan de kom
2014 01:01:53,060 --> 01:01:53,600
Var att
2015 01:01:53,600 --> 01:01:54,120
Nu har vi
2016 01:01:54,120 --> 01:01:55,740
Dratt igång en intern audit
2017 01:01:55,740 --> 01:01:56,740
Och det har inte visat på
2018 01:01:56,740 --> 01:01:57,840
Att det har varit några grejer
2019 01:01:57,840 --> 01:01:58,900
By the way
2020 01:01:58,900 --> 01:01:59,640
Här är fyra
2021 01:01:59,640 --> 01:02:01,040
Rätt kritiska sårbarheter
2022 01:02:01,040 --> 01:02:02,340
Lite så
2023 01:02:02,340 --> 01:02:04,440
Ja
2024 01:02:04,440 --> 01:02:05,080
Marknads
2025 01:02:05,080 --> 01:02:05,900
Marknads
2026 01:02:05,900 --> 01:02:07,440
Avdelningen
2027 01:02:07,440 --> 01:02:08,380
Eller hur
2028 01:02:08,380 --> 01:02:09,900
Ja men det är kvartalsekonomin
2029 01:02:09,900 --> 01:02:11,420
Ja men lite så
2030 01:02:11,420 --> 01:02:12,480
Kändes det som i alla fall
2031 01:02:12,480 --> 01:02:14,040
Ja och det där
2032 01:02:14,040 --> 01:02:14,880
Det där är nog inte
2033 01:02:14,880 --> 01:02:15,920
De enda buggarna
2034 01:02:15,920 --> 01:02:16,820
Som existerar
2035 01:02:16,820 --> 01:02:18,300
Det är jag ganska övertygad om
2036 01:02:18,300 --> 01:02:18,920
Jag misstrycker att vi
2037 01:02:18,920 --> 01:02:20,020
Kommer att återkomma till
2038 01:02:20,020 --> 01:02:20,920
Intel
2039 01:02:20,920 --> 01:02:22,280
Och de här sårbarheterna
2040 01:02:22,280 --> 01:02:23,320
Under året som kommer
2041 01:02:23,320 --> 01:02:24,060
Men det som jag tycker
2042 01:02:24,060 --> 01:02:24,620
Är intressant
2043 01:02:24,620 --> 01:02:26,260
Det är ju en hårdvaru
2044 01:02:26,260 --> 01:02:27,760
Alltså vi är ganska långt ner
2045 01:02:27,760 --> 01:02:29,400
I teknikstacken
2046 01:02:29,400 --> 01:02:30,000
Och lallar
2047 01:02:30,000 --> 01:02:31,380
Vilket är
2048 01:02:31,380 --> 01:02:33,760
2018
2049 01:02:33,760 --> 01:02:35,360
Year of the hardware
2050 01:02:35,360 --> 01:02:35,880
Sidechannel
2051 01:02:35,900 --> 01:02:36,960
Kanske
2052 01:02:36,960 --> 01:02:38,040
Vi kan ju spara det
2053 01:02:38,040 --> 01:02:38,440
Till nästa avsnitt
2054 01:02:38,440 --> 01:02:39,320
Vi sparar det till nästa avsnitt
2055 01:02:39,320 --> 01:02:40,280
Ja precis
2056 01:02:40,280 --> 01:02:41,140
Då ska vi nämligen
2057 01:02:41,140 --> 01:02:41,840
Gå igenom
2058 01:02:41,840 --> 01:02:42,460
Våra predictions
2059 01:02:42,460 --> 01:02:43,400
Från 2017
2060 01:02:43,400 --> 01:02:44,280
Och 499
2061 01:02:44,280 --> 01:02:46,200
Så lyssna på nästa avsnitt
2062 01:02:46,200 --> 01:02:46,820
Känns det bra nu
2063 01:02:46,820 --> 01:02:48,200
Ska vi play it out
2064 01:02:48,200 --> 01:02:48,940
På den här avsnittet
2065 01:02:48,940 --> 01:02:49,720
Jag tror på det
2066 01:02:49,720 --> 01:02:50,540
Okej
2067 01:02:50,540 --> 01:02:51,960
Så det var så djupt
2068 01:02:51,960 --> 01:02:53,020
Vi kunde gå för en timme
2069 01:02:53,020 --> 01:02:54,100
Med attackerna
2070 01:02:54,100 --> 01:02:55,580
Vi återkommer
2071 01:02:55,580 --> 01:02:55,860
I frågan
2072 01:02:55,860 --> 01:02:58,020
Om det funkar
2073 01:02:58,020 --> 01:02:59,840
Det som frontade
2074 01:02:59,840 --> 01:03:00,100
Var jag
2075 01:03:00,100 --> 01:03:00,700
Johan Ruben
2076 01:03:00,700 --> 01:03:00,980
Välkommen
2077 01:03:00,980 --> 01:03:02,280
Peter Magnusson
2078 01:03:02,280 --> 01:03:04,600
Mattias Hidhaga
2079 01:03:04,600 --> 01:03:05,480
Wop wop
2080 01:03:05,480 --> 01:03:06,300
Rickard Botfors
2081 01:03:06,300 --> 01:03:07,500
On a sidechannel
2082 01:03:07,500 --> 01:03:08,160
Och Jesper Lund
2083 01:03:08,160 --> 01:03:09,220
Yes sir
2084 01:03:09,220 --> 01:03:09,900
Ha det så bra
2085 01:03:09,900 --> 01:03:10,400
Ha det gött
2086 01:03:10,400 --> 01:03:10,640
Hej
2087 01:03:10,640 --> 01:03:11,080
Hej