﻿1
00:00:00,030 --> 00:00:05,069
we are going to<font color="#CCCCCC"> kick off our Talk's</font>

2
00:00:02,129 --> 00:00:07,020
today with Alex Morozov from silence<font color="#CCCCCC"> he</font>

3
00:00:05,069 --> 00:00:08,760
wrote a<font color="#E5E5E5"> book called boot kits</font><font color="#CCCCCC"> root kits</font>

4
00:00:07,020 --> 00:00:10,799
and<font color="#E5E5E5"> boot kits</font><font color="#CCCCCC"> that backwards or forwards</font>

5
00:00:08,760 --> 00:00:12,990
<font color="#CCCCCC">and he's going to talk to</font><font color="#E5E5E5"> us today about</font>

6
00:00:10,800 --> 00:00:15,509
subverting<font color="#CCCCCC"> the BIOS I know you've all</font>

7
00:00:12,990 --> 00:00:19,529
had lunch<font color="#CCCCCC"> so stay awake</font><font color="#E5E5E5"> and enjoy the</font>

8
00:00:15,509 --> 00:00:21,630
talk hello everyone my name is Alex

9
00:00:19,529 --> 00:00:23,609
Marat Safin and I will<font color="#E5E5E5"> present</font><font color="#CCCCCC"> him today</font>

10
00:00:21,630 --> 00:00:27,538
<font color="#E5E5E5">between the</font><font color="#CCCCCC"> bias</font><font color="#E5E5E5"> where</font><font color="#CCCCCC"> the guardians of</font>

11
00:00:23,609 --> 00:00:29,789
the virus failing<font color="#E5E5E5"> so actually the talk</font>

12
00:00:27,539 --> 00:00:31,410
will be focusing<font color="#E5E5E5"> on some of the</font>

13
00:00:29,789 --> 00:00:34,440
technologies which<font color="#CCCCCC"> is supposed to</font>

14
00:00:31,410 --> 00:00:37,559
<font color="#E5E5E5">protect the firm where you fight firmer</font>

15
00:00:34,440 --> 00:00:41,780
specifically and this kind of<font color="#E5E5E5"> treads</font>

16
00:00:37,559 --> 00:00:45,480
actually always under<font color="#CCCCCC"> the radar</font><font color="#E5E5E5"> of</font>

17
00:00:41,780 --> 00:00:48,000
normal<font color="#E5E5E5"> malicious and to our normal</font>

18
00:00:45,480 --> 00:00:52,440
<font color="#CCCCCC">security software and</font><font color="#E5E5E5"> antivirus software</font>

19
00:00:48,000 --> 00:00:54,480
and also<font color="#CCCCCC"> actually this research being</font>

20
00:00:52,440 --> 00:00:57,899
done for blackhat<font color="#E5E5E5"> where</font><font color="#CCCCCC"> I guess this</font>

21
00:00:54,480 --> 00:01:01,288
year<font color="#E5E5E5"> for specifically for blue hat it</font>

22
00:00:57,899 --> 00:01:03,719
will be a bit<font color="#E5E5E5"> extended and also I'm</font>

23
00:01:01,289 --> 00:01:06,570
<font color="#E5E5E5">currently actually</font><font color="#CCCCCC"> leading embedded</font>

24
00:01:03,719 --> 00:01:09,450
security<font color="#E5E5E5"> at Nvidia but before of</font><font color="#CCCCCC"> that I</font>

25
00:01:06,570 --> 00:01:11,220
actually been at silence as principal

26
00:01:09,450 --> 00:01:14,970
security researcher and this research

27
00:01:11,220 --> 00:01:17,400
being done at<font color="#CCCCCC"> the</font><font color="#E5E5E5"> science time before of</font>

28
00:01:14,970 --> 00:01:22,500
that<font color="#CCCCCC"> I actually</font><font color="#E5E5E5"> been a security lead for</font>

29
00:01:17,400 --> 00:01:24,990
Intel<font color="#CCCCCC"> ufi firmware security and yeah I</font>

30
00:01:22,500 --> 00:01:26,580
actually out one of the outers of the

31
00:01:24,990 --> 00:01:29,850
boot boot kids and<font color="#CCCCCC"> rootkits advanced</font><font color="#E5E5E5"> it</font>

32
00:01:26,580 --> 00:01:32,939
more analysis<font color="#E5E5E5"> so what we are talking</font>

33
00:01:29,850 --> 00:01:35,220
<font color="#E5E5E5">about today so we will start about</font><font color="#CCCCCC"> the</font>

34
00:01:32,939 --> 00:01:37,889
<font color="#CCCCCC">attacks</font><font color="#E5E5E5"> on</font><font color="#CCCCCC"> the BIOS update and how</font>

35
00:01:35,220 --> 00:01:41,670
actually the updates for the you<font color="#CCCCCC"> fight</font>

36
00:01:37,890 --> 00:01:44,250
firmware is failing<font color="#E5E5E5"> and why is it it is</font>

37
00:01:41,670 --> 00:01:47,970
failing<font color="#CCCCCC"> it</font><font color="#E5E5E5"> which kind</font><font color="#CCCCCC"> of attacks</font><font color="#E5E5E5"> that</font>

38
00:01:44,250 --> 00:01:51,119
hacker can use it for get in<font color="#E5E5E5"> without</font>

39
00:01:47,970 --> 00:01:54,420
<font color="#E5E5E5">physical access and after that I will</font>

40
00:01:51,119 --> 00:01:57,299
<font color="#E5E5E5">explain first known</font><font color="#CCCCCC"> into boot guard</font>

41
00:01:54,420 --> 00:01:59,520
<font color="#E5E5E5">attack and it is technology which is</font>

42
00:01:57,299 --> 00:02:03,390
actually protect the secure boot from

43
00:01:59,520 --> 00:02:05,060
<font color="#E5E5E5">the hardware side and specifically</font><font color="#CCCCCC"> I</font>

44
00:02:03,390 --> 00:02:08,669
<font color="#CCCCCC">will focus on american megatrends</font>

45
00:02:05,060 --> 00:02:10,860
implementation and we<font color="#CCCCCC"> will talking about</font>

46
00:02:08,669 --> 00:02:13,799
how the<font color="#CCCCCC"> technology works and</font><font color="#E5E5E5"> where is it</font>

47
00:02:10,860 --> 00:02:15,750
<font color="#CCCCCC">like sensitive places and</font>

48
00:02:13,800 --> 00:02:18,300
how the attacker can actually bypass

49
00:02:15,750 --> 00:02:21,570
<font color="#E5E5E5">this technology and discuss the wounds</font>

50
00:02:18,300 --> 00:02:24,270
which is I use it for bypass it and I

51
00:02:21,570 --> 00:02:30,660
will give you details about<font color="#E5E5E5"> some BIOS</font>

52
00:02:24,270 --> 00:02:32,610
guard implementation - so<font color="#E5E5E5"> boot guard</font>

53
00:02:30,660 --> 00:02:35,400
it's totally actually undocumented

54
00:02:32,610 --> 00:02:37,890
technology and if you interested<font color="#E5E5E5"> it will</font>

55
00:02:35,400 --> 00:02:40,140
be some details which is actually not

56
00:02:37,890 --> 00:02:42,750
published<font color="#CCCCCC"> before my</font><font color="#E5E5E5"> talk at blackhat</font><font color="#CCCCCC"> and</font>

57
00:02:40,140 --> 00:02:44,820
today<font color="#CCCCCC"> I will</font><font color="#E5E5E5"> also talk about the - which</font>

58
00:02:42,750 --> 00:02:46,140
is make some validation<font color="#E5E5E5"> for the</font><font color="#CCCCCC"> endo</font>

59
00:02:44,820 --> 00:02:48,660
boot guard but let's start<font color="#E5E5E5"> from the</font>

60
00:02:46,140 --> 00:02:50,250
<font color="#CCCCCC">beginning so</font><font color="#E5E5E5"> why</font><font color="#CCCCCC"> actually the bias is</font>

61
00:02:48,660 --> 00:02:54,090
very<font color="#E5E5E5"> interesting place</font><font color="#CCCCCC"> for the route</font>

62
00:02:50,250 --> 00:02:57,270
kids<font color="#E5E5E5"> in the past</font><font color="#CCCCCC"> time actually a rootkit</font>

63
00:02:54,090 --> 00:02:59,760
started from Realtree and just like<font color="#E5E5E5"> load</font>

64
00:02:57,270 --> 00:03:02,310
some malicious driver<font color="#E5E5E5"> inside the kernel</font>

65
00:02:59,760 --> 00:03:05,970
<font color="#E5E5E5">or like abuse some driver objects inside</font>

66
00:03:02,310 --> 00:03:08,610
the<font color="#CCCCCC"> kernel and</font><font color="#E5E5E5"> after some time</font><font color="#CCCCCC"> when the</font>

67
00:03:05,970 --> 00:03:12,410
secure boot and code sign and policies

68
00:03:08,610 --> 00:03:15,450
for<font color="#CCCCCC"> kernel what driver appears its</font>

69
00:03:12,410 --> 00:03:18,720
before secure boot actually appears<font color="#CCCCCC"> it's</font>

70
00:03:15,450 --> 00:03:22,980
<font color="#E5E5E5">it been a time</font><font color="#CCCCCC"> for the boot boot kids</font>

71
00:03:18,720 --> 00:03:26,310
because like attacker start thinking how

72
00:03:22,980 --> 00:03:28,530
how we can actually get in and get<font color="#E5E5E5"> a</font>

73
00:03:26,310 --> 00:03:32,190
lipid a little bit<font color="#E5E5E5"> deeper with the</font>

74
00:03:28,530 --> 00:03:34,110
system boot flow and attack the MBR<font color="#E5E5E5"> a</font>

75
00:03:32,190 --> 00:03:40,440
<font color="#E5E5E5">Master Boot Record and volume Boot</font>

76
00:03:34,110 --> 00:03:43,890
<font color="#E5E5E5">Record and okay</font><font color="#CCCCCC"> but after that in 2012</font>

77
00:03:40,440 --> 00:03:46,650
<font color="#E5E5E5">the secure boot been introduced and in</font>

78
00:03:43,890 --> 00:03:49,640
nowadays<font color="#CCCCCC"> actually all the systems came</font>

79
00:03:46,650 --> 00:03:53,910
with active secure boot and it's very

80
00:03:49,640 --> 00:03:57,359
but some some cases with wanna cry and

81
00:03:53,910 --> 00:03:59,310
<font color="#E5E5E5">other malicious dresses show so I ran</font>

82
00:03:57,360 --> 00:04:01,350
<font color="#CCCCCC">somewhere shows like it's still a lot of</font>

83
00:03:59,310 --> 00:04:04,280
<font color="#E5E5E5">systems which is doesn't use the secure</font>

84
00:04:01,350 --> 00:04:08,340
boot<font color="#CCCCCC"> read but it's supposed</font><font color="#E5E5E5"> to</font><font color="#CCCCCC"> be there</font>

85
00:04:04,280 --> 00:04:11,670
and if<font color="#CCCCCC"> we're</font><font color="#E5E5E5"> thinking</font><font color="#CCCCCC"> about work very</font>

86
00:04:08,340 --> 00:04:14,940
complex sophisticated<font color="#CCCCCC"> treads</font><font color="#E5E5E5"> and it can</font>

87
00:04:11,670 --> 00:04:17,039
be biased<font color="#CCCCCC"> and specifically for like data</font>

88
00:04:14,940 --> 00:04:19,680
centers<font color="#E5E5E5"> and the clouds it's very</font>

89
00:04:17,040 --> 00:04:22,020
<font color="#CCCCCC">sensitive place if the attacker came</font>

90
00:04:19,680 --> 00:04:24,150
with supply<font color="#CCCCCC"> and chain attack on the</font>

91
00:04:22,019 --> 00:04:26,299
server inside<font color="#E5E5E5"> the firmware this can</font>

92
00:04:24,150 --> 00:04:29,030
expose all<font color="#CCCCCC"> the guests</font>

93
00:04:26,300 --> 00:04:30,919
on the server if it will<font color="#CCCCCC"> be</font><font color="#E5E5E5"> like no</font>

94
00:04:29,030 --> 00:04:33,520
specific protections<font color="#CCCCCC"> like memory</font>

95
00:04:30,919 --> 00:04:37,969
encryption<font color="#E5E5E5"> or something else right</font><font color="#CCCCCC"> so</font>

96
00:04:33,520 --> 00:04:39,740
<font color="#CCCCCC">very interesting place</font><font color="#E5E5E5"> for</font><font color="#CCCCCC"> the</font><font color="#E5E5E5"> attacker</font>

97
00:04:37,970 --> 00:04:42,380
<font color="#CCCCCC">its system management mode which is</font>

98
00:04:39,740 --> 00:04:45,830
currently one of the most privileged<font color="#E5E5E5"> it</font>

99
00:04:42,380 --> 00:04:50,360
<font color="#E5E5E5">mods inside inside the intel x86</font>

100
00:04:45,830 --> 00:04:52,930
architecture and actually why<font color="#E5E5E5"> is the</font>

101
00:04:50,360 --> 00:04:55,940
last line<font color="#E5E5E5"> showing like we're going from</font>

102
00:04:52,930 --> 00:04:58,430
system management mode to the operating

103
00:04:55,940 --> 00:05:00,440
<font color="#CCCCCC">system level to rank zero because</font>

104
00:04:58,430 --> 00:05:03,110
actually yes<font color="#CCCCCC"> you can parse all the</font>

105
00:05:00,440 --> 00:05:05,240
<font color="#E5E5E5">physical memory from there but if you</font>

106
00:05:03,110 --> 00:05:07,130
<font color="#E5E5E5">want to track some specific applications</font>

107
00:05:05,240 --> 00:05:09,319
it's very interesting<font color="#E5E5E5"> to be present on</font>

108
00:05:07,130 --> 00:05:13,090
the operating system<font color="#CCCCCC"> level</font><font color="#E5E5E5"> and it's</font>

109
00:05:09,319 --> 00:05:17,090
actually not difficult<font color="#CCCCCC"> to inject some</font>

110
00:05:13,090 --> 00:05:19,130
some malicious drivers or something else

111
00:05:17,090 --> 00:05:21,679
from<font color="#E5E5E5"> this level because</font><font color="#CCCCCC"> you control of</font>

112
00:05:19,130 --> 00:05:23,990
the memory space<font color="#E5E5E5"> and you can just like</font>

113
00:05:21,680 --> 00:05:28,699
modify some<font color="#E5E5E5"> structures if it will be not</font>

114
00:05:23,990 --> 00:05:32,900
no<font color="#E5E5E5"> integrity checks and I want to say</font>

115
00:05:28,699 --> 00:05:36,080
actually<font color="#E5E5E5"> as more mitigation</font><font color="#CCCCCC"> we have</font><font color="#E5E5E5"> as</font>

116
00:05:32,900 --> 00:05:39,169
more complexities growth<font color="#E5E5E5"> so currently</font>

117
00:05:36,080 --> 00:05:43,250
all the<font color="#CCCCCC"> route kids it's growing</font><font color="#E5E5E5"> closer</font>

118
00:05:39,169 --> 00:05:50,210
and<font color="#E5E5E5"> closer to hardware we</font><font color="#CCCCCC"> have from some</font>

119
00:05:43,250 --> 00:05:53,599
like known cases<font color="#E5E5E5"> examples like our LK</font>

120
00:05:50,210 --> 00:05:56,539
loader from hacking team or some<font color="#E5E5E5"> implant</font>

121
00:05:53,599 --> 00:06:01,880
which has been disclosed<font color="#E5E5E5"> with world</font><font color="#CCCCCC"> 7</font>

122
00:05:56,539 --> 00:06:04,490
leaks and this kind of<font color="#CCCCCC"> treads actually</font>

123
00:06:01,880 --> 00:06:08,830
can bypass all<font color="#CCCCCC"> the modern mitigations</font><font color="#E5E5E5"> if</font>

124
00:06:04,490 --> 00:06:15,219
the<font color="#E5E5E5"> bias doesn't have any protections or</font>

125
00:06:08,830 --> 00:06:18,190
deliver<font color="#E5E5E5"> unsign and updates</font><font color="#CCCCCC"> right so and</font>

126
00:06:15,219 --> 00:06:20,930
this why it's actually<font color="#CCCCCC"> I copied from the</font>

127
00:06:18,190 --> 00:06:22,909
presentation from<font color="#E5E5E5"> Intel which has been</font>

128
00:06:20,930 --> 00:06:26,830
presented<font color="#CCCCCC"> in</font><font color="#E5E5E5"> this black hat</font><font color="#CCCCCC"> and</font><font color="#E5E5E5"> we can</font>

129
00:06:22,909 --> 00:06:32,479
see<font color="#E5E5E5"> like a growth of the bias incidence</font>

130
00:06:26,830 --> 00:06:35,150
which is actually been involved<font color="#CCCCCC"> with</font><font color="#E5E5E5"> the</font>

131
00:06:32,479 --> 00:06:39,050
enthalpy chart<font color="#E5E5E5"> and interesting think</font>

132
00:06:35,150 --> 00:06:40,200
actually configuration configuration of

133
00:06:39,050 --> 00:06:44,100
waste issues

134
00:06:40,200 --> 00:06:46,800
has a<font color="#E5E5E5"> very high rate here when like the</font>

135
00:06:44,100 --> 00:06:52,050
<font color="#E5E5E5">platform has the issues and by default</font>

136
00:06:46,800 --> 00:06:57,450
<font color="#E5E5E5">configure</font><font color="#CCCCCC"> unsecure way and it's actually</font>

137
00:06:52,050 --> 00:07:00,120
very very<font color="#E5E5E5"> bad when this kind of things</font>

138
00:06:57,450 --> 00:07:04,969
happens because for supply chain<font color="#CCCCCC"> attacks</font>

139
00:07:00,120 --> 00:07:07,080
it the perfect vector right and<font color="#CCCCCC"> Google</font>

140
00:07:04,970 --> 00:07:09,420
<font color="#E5E5E5">introduces a</font><font color="#CCCCCC"> cheap which is</font><font color="#E5E5E5"> Google</font>

141
00:07:07,080 --> 00:07:12,300
<font color="#CCCCCC">Chetan recently and it's very interested</font>

142
00:07:09,420 --> 00:07:15,120
in case when the company<font color="#CCCCCC"> developed</font>

143
00:07:12,300 --> 00:07:19,050
something<font color="#E5E5E5"> for like</font><font color="#CCCCCC"> armoring root of</font>

144
00:07:15,120 --> 00:07:21,600
trust<font color="#E5E5E5"> on the hardware</font><font color="#CCCCCC"> side because if it</font>

145
00:07:19,050 --> 00:07:26,460
doesn't trust the hardware<font color="#E5E5E5"> how we can</font>

146
00:07:21,600 --> 00:07:28,170
protect protect root of trust<font color="#E5E5E5"> for the</font>

147
00:07:26,460 --> 00:07:31,049
secure boot<font color="#E5E5E5"> and other things and trust</font>

148
00:07:28,170 --> 00:07:33,690
like peripheral devices<font color="#CCCCCC"> they're right</font>

149
00:07:31,050 --> 00:07:38,610
somebody just inject<font color="#E5E5E5"> just install like</font>

150
00:07:33,690 --> 00:07:41,520
<font color="#CCCCCC">beside</font><font color="#E5E5E5"> wise and then get access to visit</font>

151
00:07:38,610 --> 00:07:44,160
<font color="#CCCCCC">G my attack</font><font color="#E5E5E5"> if it will</font><font color="#CCCCCC"> be</font><font color="#E5E5E5"> like unsecured</font>

152
00:07:41,520 --> 00:07:47,729
way or<font color="#CCCCCC"> VTD will</font><font color="#E5E5E5"> be doesn't</font><font color="#CCCCCC"> ensure</font>

153
00:07:44,160 --> 00:07:49,830
initialized very early so it's very

154
00:07:47,730 --> 00:07:52,700
interesting<font color="#E5E5E5"> case where where the company</font>

155
00:07:49,830 --> 00:07:56,880
not really<font color="#CCCCCC"> related with this</font><font color="#E5E5E5"> like</font>

156
00:07:52,700 --> 00:08:00,650
hardware development or related with ik

157
00:07:56,880 --> 00:08:02,969
and customers<font color="#E5E5E5"> things like big</font><font color="#CCCCCC"> cells but</font>

158
00:08:00,650 --> 00:08:05,130
develop the chip which<font color="#E5E5E5"> is actually</font>

159
00:08:02,970 --> 00:08:07,410
protects the root of trust<font color="#CCCCCC"> I I like this</font>

160
00:08:05,130 --> 00:08:11,960
approach but<font color="#E5E5E5"> I also very interested</font><font color="#CCCCCC"> to</font>

161
00:08:07,410 --> 00:08:11,960
get one for<font color="#E5E5E5"> working house can break it</font>

162
00:08:13,040 --> 00:08:21,570
so yeah let's<font color="#E5E5E5"> talk a bit</font><font color="#CCCCCC"> about the</font><font color="#E5E5E5"> BIOS</font>

163
00:08:16,650 --> 00:08:25,289
update issues<font color="#CCCCCC"> u5 firmware actually it's</font>

164
00:08:21,570 --> 00:08:27,950
very<font color="#E5E5E5"> huge if I firmware ecosystem is</font>

165
00:08:25,290 --> 00:08:31,380
<font color="#CCCCCC">very huge</font><font color="#E5E5E5"> now its automotive and</font>

166
00:08:27,950 --> 00:08:34,650
actually it's<font color="#E5E5E5"> not only x86 system it's a</font>

167
00:08:31,380 --> 00:08:39,780
lot<font color="#E5E5E5"> of arm CPUs developers like</font>

168
00:08:34,650 --> 00:08:44,550
companies use EFI firmware<font color="#CCCCCC"> too and it's</font>

169
00:08:39,780 --> 00:08:46,439
<font color="#E5E5E5">like very</font><font color="#CCCCCC"> very huge world and some of</font>

170
00:08:44,550 --> 00:08:48,270
<font color="#CCCCCC">the companies actually</font><font color="#E5E5E5"> developed some</font>

171
00:08:46,440 --> 00:08:51,630
frameworks like american megatrends

172
00:08:48,270 --> 00:08:54,240
insight and phoenix<font color="#E5E5E5"> and on top</font><font color="#CCCCCC"> of these</font>

173
00:08:51,630 --> 00:08:57,390
frameworks<font color="#CCCCCC"> companies developed the</font>

174
00:08:54,240 --> 00:09:01,740
<font color="#CCCCCC">olan firmware and a lot of</font><font color="#E5E5E5"> companies</font>

175
00:08:57,390 --> 00:09:03,959
<font color="#CCCCCC">like gigabyte</font><font color="#E5E5E5"> Asustek and others</font><font color="#CCCCCC"> doesn't</font>

176
00:09:01,740 --> 00:09:06,930
<font color="#CCCCCC">care too much about the</font><font color="#E5E5E5"> security side</font>

177
00:09:03,959 --> 00:09:09,689
because like they small and they just

178
00:09:06,930 --> 00:09:12,569
want to<font color="#E5E5E5"> ship product as fast as they can</font>

179
00:09:09,690 --> 00:09:15,779
and it's a lot of<font color="#E5E5E5"> like hardware features</font>

180
00:09:12,570 --> 00:09:18,209
came always<font color="#E5E5E5"> within</font><font color="#CCCCCC"> new hardware and they</font>

181
00:09:15,779 --> 00:09:22,939
don't have really<font color="#E5E5E5"> even like security</font>

182
00:09:18,209 --> 00:09:26,849
validation process for their<font color="#CCCCCC"> favors and</font>

183
00:09:22,940 --> 00:09:29,940
<font color="#E5E5E5">also now it's no more</font><font color="#CCCCCC"> release a bias on</font>

184
00:09:26,850 --> 00:09:34,529
new<font color="#E5E5E5"> hardware but we have legacy inside</font>

185
00:09:29,940 --> 00:09:37,350
<font color="#E5E5E5">you</font><font color="#CCCCCC"> 5 firmware and let's actually look</font>

186
00:09:34,529 --> 00:09:40,980
inside<font color="#E5E5E5"> the firmware update image how</font>

187
00:09:37,350 --> 00:09:43,920
many other firm<font color="#CCCCCC"> worst came with a bias</font>

188
00:09:40,980 --> 00:09:48,300
update image<font color="#CCCCCC"> so actually just recently</font>

189
00:09:43,920 --> 00:09:51,810
<font color="#CCCCCC">you know</font><font color="#E5E5E5"> like</font><font color="#CCCCCC"> Infineon case with TPM</font>

190
00:09:48,300 --> 00:09:54,870
issue right<font color="#CCCCCC"> so and</font><font color="#E5E5E5"> actually TPM updates</font>

191
00:09:51,810 --> 00:09:58,290
sometimes<font color="#E5E5E5"> came also with the BIOS update</font>

192
00:09:54,870 --> 00:10:00,630
image<font color="#E5E5E5"> and we do have like network</font>

193
00:09:58,290 --> 00:10:02,670
adapters we do have<font color="#CCCCCC"> graphics sensors</font>

194
00:10:00,630 --> 00:10:05,430
embedded controller even<font color="#E5E5E5"> power</font>

195
00:10:02,670 --> 00:10:08,279
management<font color="#CCCCCC"> Oh</font><font color="#E5E5E5"> nowadays actually the</font>

196
00:10:05,430 --> 00:10:14,969
batteries has a firmware<font color="#CCCCCC"> to</font><font color="#E5E5E5"> inside your</font>

197
00:10:08,279 --> 00:10:18,779
<font color="#E5E5E5">laptops so mg SMC BMC like a lot of</font><font color="#CCCCCC"> a</font>

198
00:10:14,970 --> 00:10:21,959
lot of<font color="#E5E5E5"> different farmers and if like the</font>

199
00:10:18,779 --> 00:10:25,550
door like<font color="#CCCCCC"> u5 firmware update is doesn't</font>

200
00:10:21,959 --> 00:10:28,979
<font color="#E5E5E5">have identification</font><font color="#CCCCCC"> or proper update</font>

201
00:10:25,550 --> 00:10:32,040
<font color="#E5E5E5">validation process it's open door I</font>

202
00:10:28,980 --> 00:10:36,350
<font color="#E5E5E5">write for others to break other well</font>

203
00:10:32,040 --> 00:10:38,699
<font color="#E5E5E5">also firmware and it's very interesting</font>

204
00:10:36,350 --> 00:10:41,520
<font color="#E5E5E5">what kind</font><font color="#CCCCCC"> of things we</font><font color="#E5E5E5"> will discuss</font>

205
00:10:38,700 --> 00:10:44,640
today so we<font color="#E5E5E5"> will touch</font><font color="#CCCCCC"> a CMS</font><font color="#E5E5E5"> a bit</font>

206
00:10:41,520 --> 00:10:48,390
management engine and mostly focus it on

207
00:10:44,640 --> 00:10:50,279
<font color="#E5E5E5">the</font><font color="#CCCCCC"> boot guard so all the</font>

208
00:10:48,390 --> 00:10:55,439
vulnerabilities<font color="#CCCCCC"> which I will discuss in</font>

209
00:10:50,279 --> 00:10:58,079
this talk it's based on my my research

210
00:10:55,440 --> 00:11:00,089
on american megatrends<font color="#CCCCCC"> and</font><font color="#E5E5E5"> he'll be</font>

211
00:10:58,079 --> 00:11:03,439
covered some issues<font color="#E5E5E5"> from gigabyte</font><font color="#CCCCCC"> ah so</font>

212
00:11:00,089 --> 00:11:03,440
<font color="#CCCCCC">specula</font><font color="#E5E5E5"> nova and msi</font>

213
00:11:05,000 --> 00:11:13,290
so this figure<font color="#E5E5E5"> actually shows how</font><font color="#CCCCCC"> many</font>

214
00:11:09,900 --> 00:11:18,420
simple protections like locking<font color="#CCCCCC"> bits we</font>

215
00:11:13,290 --> 00:11:23,189
<font color="#E5E5E5">have inside modern hardware from Intel</font>

216
00:11:18,420 --> 00:11:27,329
<font color="#E5E5E5">and some of them is pretty</font><font color="#CCCCCC"> simple it's</font>

217
00:11:23,190 --> 00:11:31,410
just<font color="#E5E5E5"> like</font><font color="#CCCCCC"> lock beat for doesn't update</font>

218
00:11:27,330 --> 00:11:34,530
<font color="#E5E5E5">or read spy flash protection Oh spy</font>

219
00:11:31,410 --> 00:11:40,650
flash or we have a bias<font color="#CCCCCC"> right</font><font color="#E5E5E5"> protection</font>

220
00:11:34,530 --> 00:11:43,800
bit which is doesn't<font color="#E5E5E5"> allow from the</font>

221
00:11:40,650 --> 00:11:45,810
<font color="#E5E5E5">operating</font><font color="#CCCCCC"> system to get in SMM</font><font color="#E5E5E5"> without</font>

222
00:11:43,800 --> 00:11:48,270
disabling this<font color="#E5E5E5"> bit which is can be</font>

223
00:11:45,810 --> 00:11:51,060
<font color="#E5E5E5">disabled only from ism by specific</font>

224
00:11:48,270 --> 00:11:53,900
driver<font color="#CCCCCC"> and we have a bias walk</font><font color="#E5E5E5"> bit which</font>

225
00:11:51,060 --> 00:11:56,790
<font color="#CCCCCC">is working the bias from the update and</font>

226
00:11:53,900 --> 00:11:59,760
we have fancy technologies like<font color="#E5E5E5"> bias</font>

227
00:11:56,790 --> 00:12:02,069
guard and boot guard<font color="#E5E5E5"> boot guard actually</font>

228
00:11:59,760 --> 00:12:04,830
<font color="#E5E5E5">armoring</font><font color="#CCCCCC"> the secure boot making</font><font color="#E5E5E5"> root of</font>

229
00:12:02,070 --> 00:12:07,590
trust<font color="#E5E5E5"> much more secure and starting</font>

230
00:12:04,830 --> 00:12:10,350
earlier<font color="#E5E5E5"> than bias for</font><font color="#CCCCCC"> validation</font><font color="#E5E5E5"> through</font>

231
00:12:07,590 --> 00:12:12,840
the chain of<font color="#CCCCCC"> trust</font><font color="#E5E5E5"> and</font><font color="#CCCCCC"> bias guard</font>

232
00:12:10,350 --> 00:12:14,850
actually<font color="#E5E5E5"> armoring the updates and both</font>

233
00:12:12,840 --> 00:12:16,560
<font color="#CCCCCC">this technology is working</font><font color="#E5E5E5"> with a CMS</font>

234
00:12:14,850 --> 00:12:22,470
which is actually executed in

235
00:12:16,560 --> 00:12:24,030
identification cache and specifically

236
00:12:22,470 --> 00:12:26,820
for<font color="#E5E5E5"> this talk</font><font color="#CCCCCC"> i've been found</font>

237
00:12:24,030 --> 00:12:28,199
<font color="#CCCCCC">i actually</font><font color="#E5E5E5"> found some some</font>

238
00:12:26,820 --> 00:12:30,750
vulnerabilities which is which is

239
00:12:28,200 --> 00:12:33,330
<font color="#CCCCCC">actually</font><font color="#E5E5E5"> pretty simple</font><font color="#CCCCCC"> some of the</font>

240
00:12:30,750 --> 00:12:36,780
vendors<font color="#CCCCCC"> just don't use</font><font color="#E5E5E5"> the protection</font>

241
00:12:33,330 --> 00:12:39,240
<font color="#CCCCCC">bids</font><font color="#E5E5E5"> and some of the some</font><font color="#CCCCCC"> of the vendors</font>

242
00:12:36,780 --> 00:12:42,780
<font color="#E5E5E5">don't use the policies</font><font color="#CCCCCC"> for the spy flash</font>

243
00:12:39,240 --> 00:12:46,020
regions for like isolate some<font color="#E5E5E5"> of the</font>

244
00:12:42,780 --> 00:12:48,060
regions to<font color="#CCCCCC"> be updated or right</font><font color="#E5E5E5"> be</font>

245
00:12:46,020 --> 00:12:51,840
written from from the<font color="#CCCCCC"> bios update</font>

246
00:12:48,060 --> 00:12:55,140
<font color="#E5E5E5">process and also some</font><font color="#CCCCCC"> of the vendors</font>

247
00:12:51,840 --> 00:12:57,240
<font color="#CCCCCC">just don't use the sign</font><font color="#E5E5E5"> digital sign for</font>

248
00:12:55,140 --> 00:12:59,970
the updates out<font color="#E5E5E5"> gentrification which is</font>

249
00:12:57,240 --> 00:13:04,320
a lot<font color="#CCCCCC"> Iker modifies the</font><font color="#E5E5E5"> bios image and</font>

250
00:12:59,970 --> 00:13:08,040
deliver something<font color="#E5E5E5"> malicious and some of</font>

251
00:13:04,320 --> 00:13:11,510
the vendors<font color="#CCCCCC"> like gigabyte don't use boot</font>

252
00:13:08,040 --> 00:13:14,520
guard properly and it's a lot<font color="#CCCCCC"> harder</font><font color="#E5E5E5"> to</font>

253
00:13:11,510 --> 00:13:16,630
<font color="#CCCCCC">actually bypass this technology and i</font>

254
00:13:14,520 --> 00:13:19,720
will introduce one

255
00:13:16,630 --> 00:13:25,930
the<font color="#CCCCCC"> first known bypasses for this</font>

256
00:13:19,720 --> 00:13:29,290
<font color="#CCCCCC">technology today so how different</font>

257
00:13:25,930 --> 00:13:32,709
vendors care about the biosecurity<font color="#E5E5E5"> and</font>

258
00:13:29,290 --> 00:13:34,510
you can see here like different vendors

259
00:13:32,710 --> 00:13:36,490
some of them focus it on<font color="#E5E5E5"> enterprise</font>

260
00:13:34,510 --> 00:13:40,840
market some of<font color="#E5E5E5"> them on the game industry</font>

261
00:13:36,490 --> 00:13:44,590
and you can see the difference and also

262
00:13:40,840 --> 00:13:47,980
<font color="#CCCCCC">like a lot of</font><font color="#E5E5E5"> people think like Apple is</font>

263
00:13:44,590 --> 00:13:49,600
a good<font color="#E5E5E5"> example of perfect hardware</font>

264
00:13:47,980 --> 00:13:53,410
vendor which is not<font color="#E5E5E5"> actually true</font>

265
00:13:49,600 --> 00:13:57,100
<font color="#E5E5E5">because they also don't use all of the</font>

266
00:13:53,410 --> 00:14:00,520
mitigations<font color="#CCCCCC"> and as examples they don't</font>

267
00:13:57,100 --> 00:14:03,250
use boot boot guard and they just have a

268
00:14:00,520 --> 00:14:06,100
secure boot which is<font color="#E5E5E5"> started after the</font>

269
00:14:03,250 --> 00:14:08,590
<font color="#E5E5E5">BIOS already like passes</font><font color="#CCCCCC"> at a</font><font color="#E5E5E5"> stage</font>

270
00:14:06,100 --> 00:14:10,540
platform<font color="#E5E5E5"> initialization stage</font><font color="#CCCCCC"> but I</font>

271
00:14:08,590 --> 00:14:12,340
<font color="#E5E5E5">think it will be improved soon because</font>

272
00:14:10,540 --> 00:14:16,750
they have<font color="#CCCCCC"> very strong security team for</font>

273
00:14:12,340 --> 00:14:21,340
<font color="#CCCCCC">you fight farmer and on other</font><font color="#E5E5E5"> side we</font>

274
00:14:16,750 --> 00:14:23,670
have<font color="#E5E5E5"> a</font><font color="#CCCCCC"> Dell which has actually been very</font>

275
00:14:21,340 --> 00:14:29,320
responsive<font color="#E5E5E5"> for my issues and</font><font color="#CCCCCC"> also like</font>

276
00:14:23,670 --> 00:14:31,810
they don't<font color="#E5E5E5"> have it too much and I like</font>

277
00:14:29,320 --> 00:14:35,320
how they protect the BIOS update routine

278
00:14:31,810 --> 00:14:37,780
with<font color="#CCCCCC"> uber buzz guard</font><font color="#E5E5E5"> because they do</font><font color="#CCCCCC"> it</font>

279
00:14:35,320 --> 00:14:43,090
a bit different way and it was<font color="#E5E5E5"> very hard</font>

280
00:14:37,780 --> 00:14:45,339
to<font color="#E5E5E5"> break it so</font><font color="#CCCCCC"> and some of the vendors</font>

281
00:14:43,090 --> 00:14:48,640
it's a screenshot from<font color="#E5E5E5"> the tool not</font>

282
00:14:45,340 --> 00:14:51,880
known as<font color="#E5E5E5"> a chip sack and we can see like</font>

283
00:14:48,640 --> 00:14:54,400
don't have any of simple protections on

284
00:14:51,880 --> 00:14:59,380
resin actually the<font color="#CCCCCC"> screenshot been done</font>

285
00:14:54,400 --> 00:15:02,290
for for<font color="#E5E5E5"> seven generation cab you like</font>

286
00:14:59,380 --> 00:15:04,840
from<font color="#E5E5E5"> window and the card were being</font>

287
00:15:02,290 --> 00:15:07,959
released<font color="#E5E5E5"> in January this year doesn't</font>

288
00:15:04,840 --> 00:15:13,560
have<font color="#CCCCCC"> any protections</font><font color="#E5E5E5"> and they just don't</font>

289
00:15:07,960 --> 00:15:15,130
<font color="#E5E5E5">care and specifically on this</font><font color="#CCCCCC"> hardware I</font>

290
00:15:13,560 --> 00:15:17,469
undo akathisia

291
00:15:15,130 --> 00:15:20,200
I make a demo with<font color="#E5E5E5"> you if I ran</font>

292
00:15:17,470 --> 00:15:23,980
<font color="#E5E5E5">somewhere it's pretty simple way but</font>

293
00:15:20,200 --> 00:15:27,970
<font color="#E5E5E5">it's show way in visual way how it can</font>

294
00:15:23,980 --> 00:15:30,520
be bypassed<font color="#CCCCCC"> so it's already released</font><font color="#E5E5E5"> in</font>

295
00:15:27,970 --> 00:15:34,149
my other talk the details

296
00:15:30,520 --> 00:15:36,730
if if we if<font color="#CCCCCC"> we go</font><font color="#E5E5E5"> some specific</font>

297
00:15:34,149 --> 00:15:40,300
exploitation flow<font color="#E5E5E5"> so</font><font color="#CCCCCC"> Weiss walk been not</font>

298
00:15:36,730 --> 00:15:45,000
<font color="#CCCCCC">even enabled and attacker is able</font><font color="#E5E5E5"> to</font>

299
00:15:40,300 --> 00:15:48,640
modify<font color="#CCCCCC"> bias right protection bead so and</font>

300
00:15:45,000 --> 00:15:50,680
we as<font color="#CCCCCC"> attacker we can arbitrary right</font><font color="#E5E5E5"> to</font>

301
00:15:48,640 --> 00:15:54,310
the spy<font color="#CCCCCC"> flash chip and make it</font>

302
00:15:50,680 --> 00:15:57,250
persistent<font color="#E5E5E5"> from the operating system</font>

303
00:15:54,310 --> 00:15:58,810
level<font color="#E5E5E5"> so specifically this demo show as</font>

304
00:15:57,250 --> 00:16:04,029
we have a dog

305
00:15:58,810 --> 00:16:07,329
eggs document which is<font color="#E5E5E5"> job some infected</font>

306
00:16:04,029 --> 00:16:11,890
a<font color="#CCCCCC"> ufi firmware image on the file system</font>

307
00:16:07,330 --> 00:16:18,459
<font color="#CCCCCC">and then sign a driver</font><font color="#E5E5E5"> from american</font>

308
00:16:11,890 --> 00:16:21,370
megatrends being update<font color="#E5E5E5"> using</font><font color="#CCCCCC"> this</font>

309
00:16:18,459 --> 00:16:24,939
update to<font color="#E5E5E5"> deliver malicious firmware</font>

310
00:16:21,370 --> 00:16:27,130
without any modifications inside the

311
00:16:24,940 --> 00:16:31,899
driver but<font color="#E5E5E5"> I use a privilege escalation</font>

312
00:16:27,130 --> 00:16:34,870
in this driver<font color="#E5E5E5"> so and don't verify</font><font color="#CCCCCC"> the</font>

313
00:16:31,899 --> 00:16:37,570
signature and<font color="#CCCCCC"> delivers the malicious</font>

314
00:16:34,870 --> 00:16:39,990
update it's not a rocket science<font color="#E5E5E5"> and it</font>

315
00:16:37,570 --> 00:16:43,540
shows actually it's possible<font color="#CCCCCC"> ways for</font>

316
00:16:39,990 --> 00:16:46,050
<font color="#E5E5E5">remote attacks on a lot of a lot of</font>

317
00:16:43,540 --> 00:16:49,240
<font color="#E5E5E5">different farmers and the main</font><font color="#CCCCCC"> route of</font>

318
00:16:46,050 --> 00:16:51,760
<font color="#E5E5E5">actually also problem not a lot of</font>

319
00:16:49,240 --> 00:16:54,779
<font color="#E5E5E5">people</font><font color="#CCCCCC"> really update the biases even the</font>

320
00:16:51,760 --> 00:16:58,439
companies<font color="#E5E5E5"> it's hard right so we have a</font>

321
00:16:54,779 --> 00:17:01,810
zoo<font color="#E5E5E5"> from different</font><font color="#CCCCCC"> vendors and</font><font color="#E5E5E5"> different</font>

322
00:16:58,440 --> 00:17:03,579
<font color="#CCCCCC">hardware and it's hard to</font><font color="#E5E5E5"> control how</font>

323
00:17:01,810 --> 00:17:06,849
many hard will have<font color="#E5E5E5"> resident update</font>

324
00:17:03,579 --> 00:17:11,709
which is<font color="#E5E5E5"> or how</font><font color="#CCCCCC"> many it doesn't have it</font>

325
00:17:06,849 --> 00:17:15,369
<font color="#CCCCCC">so and from</font><font color="#E5E5E5"> a tiger perspective if some</font>

326
00:17:11,709 --> 00:17:17,620
malicious<font color="#E5E5E5"> if malware came on the</font>

327
00:17:15,369 --> 00:17:20,589
operating<font color="#E5E5E5"> system level which can</font>

328
00:17:17,619 --> 00:17:23,589
<font color="#CCCCCC">actually try to check how</font><font color="#E5E5E5"> the firmware</font>

329
00:17:20,589 --> 00:17:29,620
<font color="#E5E5E5">is</font><font color="#CCCCCC"> up-to-date or check for known issues</font>

330
00:17:23,589 --> 00:17:32,260
and try to actually<font color="#E5E5E5"> attack it so</font><font color="#CCCCCC"> how</font>

331
00:17:29,620 --> 00:17:36,719
many people<font color="#E5E5E5"> update the buyers in this</font>

332
00:17:32,260 --> 00:17:36,720
room<font color="#CCCCCC"> okay</font>

333
00:17:37,100 --> 00:17:49,040
that's good to know<font color="#E5E5E5"> how many</font><font color="#CCCCCC"> people not</font>

334
00:17:40,940 --> 00:17:51,710
updated and<font color="#E5E5E5"> it's this picture actually</font>

335
00:17:49,040 --> 00:17:55,370
shows the<font color="#E5E5E5"> flow how from the operating</font>

336
00:17:51,710 --> 00:18:00,770
<font color="#E5E5E5">system level we can get in spy flash</font>

337
00:17:55,370 --> 00:18:03,560
persistently and think is like we need

338
00:18:00,770 --> 00:18:08,180
of<font color="#E5E5E5"> course I don't know memory corruption</font>

339
00:18:03,560 --> 00:18:10,370
or some bug<font color="#E5E5E5"> inside</font><font color="#CCCCCC"> browser or flash</font><font color="#E5E5E5"> or</font>

340
00:18:08,180 --> 00:18:12,680
<font color="#E5E5E5">whatever we just</font><font color="#CCCCCC"> came up through there</font>

341
00:18:10,370 --> 00:18:16,820
<font color="#E5E5E5">or spread phishing email</font><font color="#CCCCCC"> visit docx or</font>

342
00:18:12,680 --> 00:18:20,200
PDF<font color="#E5E5E5"> then of course we need get into the</font>

343
00:18:16,820 --> 00:18:23,720
kernel<font color="#E5E5E5"> mode because without kernel mode</font>

344
00:18:20,200 --> 00:18:26,270
<font color="#CCCCCC">we can't communicate with the SMI</font>

345
00:18:23,720 --> 00:18:28,280
handlers or some<font color="#E5E5E5"> services which is</font>

346
00:18:26,270 --> 00:18:32,270
responsible<font color="#E5E5E5"> for the BIOS update or</font>

347
00:18:28,280 --> 00:18:35,540
writing<font color="#CCCCCC"> to the spy flash</font><font color="#E5E5E5"> so after that</font>

348
00:18:32,270 --> 00:18:38,030
we map it<font color="#E5E5E5"> or use a specific application</font>

349
00:18:35,540 --> 00:18:41,899
from<font color="#E5E5E5"> the vendor to map the update image</font>

350
00:18:38,030 --> 00:18:45,800
for some specific<font color="#E5E5E5"> memory region</font><font color="#CCCCCC"> and</font>

351
00:18:41,900 --> 00:18:48,950
after that we call<font color="#E5E5E5"> inside the system</font>

352
00:18:45,800 --> 00:18:51,980
management mode<font color="#CCCCCC"> the service which is</font>

353
00:18:48,950 --> 00:18:55,520
actually named it as<font color="#CCCCCC"> it's my handler to</font>

354
00:18:51,980 --> 00:19:01,520
get this image<font color="#E5E5E5"> read inside this</font><font color="#CCCCCC"> mam</font><font color="#E5E5E5"> and</font>

355
00:18:55,520 --> 00:19:04,820
update the spy flash or it can be

356
00:19:01,520 --> 00:19:08,120
actually<font color="#E5E5E5"> done in different way</font><font color="#CCCCCC"> but some</font>

357
00:19:04,820 --> 00:19:14,510
of vendors which I checked<font color="#CCCCCC"> doing the</font>

358
00:19:08,120 --> 00:19:17,570
<font color="#E5E5E5">that way so and even if the drivers even</font>

359
00:19:14,510 --> 00:19:19,910
<font color="#CCCCCC">if</font><font color="#E5E5E5"> BIOS update is sign it if any</font>

360
00:19:17,570 --> 00:19:23,530
vulnerabilities inside this is my flash

361
00:19:19,910 --> 00:19:28,700
<font color="#E5E5E5">always is SMI handlers which is if</font>

362
00:19:23,530 --> 00:19:31,850
<font color="#E5E5E5">speaking simply explain it it's like cow</font>

363
00:19:28,700 --> 00:19:35,090
<font color="#E5E5E5">back function from</font><font color="#CCCCCC"> bias</font><font color="#E5E5E5"> to operating</font>

364
00:19:31,850 --> 00:19:39,320
<font color="#CCCCCC">system level</font><font color="#E5E5E5"> for reading and writing the</font>

365
00:19:35,090 --> 00:19:41,209
spy<font color="#CCCCCC"> flash</font><font color="#E5E5E5"> and in the past the</font><font color="#CCCCCC"> lot of</font>

366
00:19:39,320 --> 00:19:46,040
them use it<font color="#E5E5E5"> just is my flash driver</font>

367
00:19:41,210 --> 00:19:50,500
which is doesn't identification<font color="#E5E5E5"> it's</font>

368
00:19:46,040 --> 00:19:50,500
<font color="#CCCCCC">being like a lot of</font><font color="#E5E5E5"> issues</font><font color="#CCCCCC"> there</font><font color="#E5E5E5"> and</font>

369
00:19:50,630 --> 00:19:55,580
after some time some<font color="#CCCCCC"> of</font><font color="#E5E5E5"> the vendors</font>

370
00:19:52,760 --> 00:19:57,919
<font color="#E5E5E5">start using security so my flash which</font>

371
00:19:55,580 --> 00:20:02,270
<font color="#CCCCCC">is fully date</font><font color="#E5E5E5"> digital sign for the BIOS</font>

372
00:19:57,919 --> 00:20:06,380
updates and<font color="#E5E5E5"> actually I found</font><font color="#CCCCCC"> one issue</font>

373
00:20:02,270 --> 00:20:10,789
<font color="#E5E5E5">on</font><font color="#CCCCCC"> Asus tag with this second semi flash</font>

374
00:20:06,380 --> 00:20:15,710
driver<font color="#E5E5E5"> and even if by high net you can</font>

375
00:20:10,789 --> 00:20:19,129
<font color="#E5E5E5">attack sex to my flash</font><font color="#CCCCCC"> to modify the</font>

376
00:20:15,710 --> 00:20:23,059
flow for for for the flash and update

377
00:20:19,130 --> 00:20:27,350
<font color="#E5E5E5">without any sign verification here is a</font>

378
00:20:23,059 --> 00:20:30,649
bit about this my flash issues so this

379
00:20:27,350 --> 00:20:34,370
specific<font color="#CCCCCC"> dragger</font><font color="#E5E5E5"> are responsible for</font>

380
00:20:30,650 --> 00:20:38,179
writing reading and like enabling this

381
00:20:34,370 --> 00:20:40,668
kind of function<font color="#E5E5E5"> and also it is like</font>

382
00:20:38,179 --> 00:20:45,559
<font color="#CCCCCC">getting some information about how spy</font>

383
00:20:40,669 --> 00:20:50,230
flash<font color="#E5E5E5"> how many memories has and how how</font>

384
00:20:45,559 --> 00:20:50,230
<font color="#CCCCCC">actually bios</font><font color="#E5E5E5"> update feed for for this</font>

385
00:20:50,650 --> 00:20:56,299
<font color="#CCCCCC">circuit</font><font color="#E5E5E5"> of my flesh</font><font color="#CCCCCC"> it's a bit more</font>

386
00:20:53,000 --> 00:20:59,659
<font color="#E5E5E5">interesting because it's validate the</font>

387
00:20:56,299 --> 00:21:03,379
update<font color="#E5E5E5"> for for for digital sign and it's</font>

388
00:20:59,659 --> 00:21:07,600
<font color="#CCCCCC">voting image and get information about</font>

389
00:21:03,380 --> 00:21:10,549
sign and validate the sign and actually

390
00:21:07,600 --> 00:21:12,649
<font color="#E5E5E5">here is the number</font><font color="#CCCCCC"> of</font><font color="#E5E5E5"> is my handlers</font>

391
00:21:10,549 --> 00:21:15,080
which is can code from the operating

392
00:21:12,650 --> 00:21:17,480
<font color="#CCCCCC">system level and all of them being</font>

393
00:21:15,080 --> 00:21:22,730
vulnerable for simple call out attacks

394
00:21:17,480 --> 00:21:27,950
which is pretty much<font color="#CCCCCC"> simple to exploit</font>

395
00:21:22,730 --> 00:21:32,620
and what I did and of course<font color="#CCCCCC"> it's why</font>

396
00:21:27,950 --> 00:21:35,809
why<font color="#E5E5E5"> is guard been created by Intel and</font>

397
00:21:32,620 --> 00:21:37,908
actually<font color="#CCCCCC"> Visegrad guard it's pretty</font>

398
00:21:35,809 --> 00:21:41,389
interesting technology and it's

399
00:21:37,909 --> 00:21:46,600
available on most of<font color="#E5E5E5"> the</font><font color="#CCCCCC"> platforms which</font>

400
00:21:41,390 --> 00:21:49,460
is<font color="#E5E5E5"> used</font><font color="#CCCCCC"> V Pro so it's a bit about</font>

401
00:21:46,600 --> 00:21:52,549
<font color="#E5E5E5">responsible discs were fun so and you</font>

402
00:21:49,460 --> 00:21:54,950
<font color="#E5E5E5">can</font><font color="#CCCCCC"> see how actually</font><font color="#E5E5E5"> how much time you</font>

403
00:21:52,549 --> 00:21:58,370
<font color="#E5E5E5">need</font><font color="#CCCCCC"> to patch the issues for</font><font color="#E5E5E5"> the bias</font>

404
00:21:54,950 --> 00:22:02,380
<font color="#CCCCCC">even if it will be</font><font color="#E5E5E5"> like one</font><font color="#CCCCCC"> bit change</font>

405
00:21:58,370 --> 00:22:02,379
inside<font color="#E5E5E5"> the</font><font color="#CCCCCC"> BIOS code</font>

406
00:22:03,090 --> 00:22:10,000
but most<font color="#E5E5E5"> interesting part it's like how</font>

407
00:22:06,420 --> 00:22:12,640
some of<font color="#E5E5E5"> the vendors react so I submit</font>

408
00:22:10,000 --> 00:22:15,970
the issues to a stack<font color="#E5E5E5"> and after a month</font>

409
00:22:12,640 --> 00:22:18,340
of my<font color="#E5E5E5"> email they send me I send it</font>

410
00:22:15,970 --> 00:22:21,340
<font color="#E5E5E5">flower</font><font color="#CCCCCC"> follow-up email and they say</font><font color="#E5E5E5"> okay</font>

411
00:22:18,340 --> 00:22:23,649
it's no issues<font color="#CCCCCC"> I said how come</font><font color="#E5E5E5"> actually</font>

412
00:22:21,340 --> 00:22:26,500
I<font color="#E5E5E5"> found the issues I send details</font><font color="#CCCCCC"> no no</font>

413
00:22:23,650 --> 00:22:29,920
we<font color="#CCCCCC"> push it already so I make a bean dip</font>

414
00:22:26,500 --> 00:22:31,930
of<font color="#E5E5E5"> BIOS update and then I see like they</font>

415
00:22:29,920 --> 00:22:34,780
push it exactly<font color="#E5E5E5"> my issues</font><font color="#CCCCCC"> a</font><font color="#E5E5E5"> new update</font>

416
00:22:31,930 --> 00:22:39,330
<font color="#E5E5E5">just like few weeks after I send it in</font>

417
00:22:34,780 --> 00:22:42,670
well and after some pressure<font color="#E5E5E5"> to a stack</font>

418
00:22:39,330 --> 00:22:44,679
they actually submit me send me another

419
00:22:42,670 --> 00:22:50,950
email where they say<font color="#E5E5E5"> okay</font><font color="#CCCCCC"> yeah we</font>

420
00:22:44,680 --> 00:22:55,390
<font color="#E5E5E5">recognize it was your issues and</font><font color="#CCCCCC"> it's</font>

421
00:22:50,950 --> 00:22:58,300
also<font color="#E5E5E5"> like shows the level of of the</font>

422
00:22:55,390 --> 00:23:00,490
vendors how they<font color="#CCCCCC"> redid to</font><font color="#E5E5E5"> communicate</font>

423
00:22:58,300 --> 00:23:02,620
with researchers and<font color="#E5E5E5"> research community</font>

424
00:23:00,490 --> 00:23:07,450
which is actually without any money

425
00:23:02,620 --> 00:23:10,179
<font color="#CCCCCC">tried to help to fix and try to actually</font>

426
00:23:07,450 --> 00:23:14,080
make their products more secure<font color="#E5E5E5"> right</font>

427
00:23:10,180 --> 00:23:19,350
<font color="#E5E5E5">it's no bug bounties from</font><font color="#CCCCCC"> us</font><font color="#E5E5E5"> it's like</font>

428
00:23:14,080 --> 00:23:19,350
they<font color="#CCCCCC"> just we just given them</font><font color="#E5E5E5"> for free</font>

429
00:23:21,180 --> 00:23:29,050
and if we switch<font color="#E5E5E5"> on the mitigation</font>

430
00:23:26,310 --> 00:23:31,270
technology<font color="#CCCCCC"> I want to talk about the into</font>

431
00:23:29,050 --> 00:23:35,190
boot guard<font color="#E5E5E5"> which is pretty interesting</font>

432
00:23:31,270 --> 00:23:38,950
technology it start with a date<font color="#CCCCCC"> root</font>

433
00:23:35,190 --> 00:23:42,310
<font color="#E5E5E5">root of chain</font><font color="#CCCCCC"> of trust from</font><font color="#E5E5E5"> early</font>

434
00:23:38,950 --> 00:23:44,230
beginning even before the bias started

435
00:23:42,310 --> 00:23:49,510
and it's actually<font color="#CCCCCC"> very good from</font><font color="#E5E5E5"> the</font>

436
00:23:44,230 --> 00:23:53,830
security perspective but it's also like

437
00:23:49,510 --> 00:23:56,800
<font color="#CCCCCC">always you some of the</font><font color="#E5E5E5"> things come for</font>

438
00:23:53,830 --> 00:23:58,570
the manufacturing and<font color="#E5E5E5"> third</font><font color="#CCCCCC"> parties</font>

439
00:23:56,800 --> 00:24:03,040
implementation I mean like hardware

440
00:23:58,570 --> 00:24:05,200
vendors and I<font color="#CCCCCC"> Belize and it's where</font>

441
00:24:03,040 --> 00:24:07,649
<font color="#CCCCCC">they're failed but let's talk a bit</font>

442
00:24:05,200 --> 00:24:11,160
<font color="#CCCCCC">about different shades of secure boot a</font>

443
00:24:07,650 --> 00:24:13,910
regional secure boot been introduced on

444
00:24:11,160 --> 00:24:18,350
<font color="#E5E5E5">in 2012</font>

445
00:24:13,910 --> 00:24:20,420
and actually<font color="#CCCCCC"> a root</font><font color="#E5E5E5"> of trust been fully</font>

446
00:24:18,350 --> 00:24:23,510
based on the<font color="#E5E5E5"> buyers that's mean any</font>

447
00:24:20,420 --> 00:24:28,910
issue<font color="#E5E5E5"> inside the system management mode</font>

448
00:24:23,510 --> 00:24:33,170
or<font color="#CCCCCC"> not</font><font color="#E5E5E5"> only sometimes can break it</font><font color="#CCCCCC"> root</font>

449
00:24:28,910 --> 00:24:35,050
of trust so or attack surface based on

450
00:24:33,170 --> 00:24:37,850
<font color="#CCCCCC">farmer sir</font>

451
00:24:35,050 --> 00:24:39,950
<font color="#CCCCCC">after</font><font color="#E5E5E5"> some time it's been introduced at</font>

452
00:24:37,850 --> 00:24:43,879
measured boot and verified boot schemes

453
00:24:39,950 --> 00:24:47,570
and measure<font color="#E5E5E5"> it Buddha is actually based</font>

454
00:24:43,880 --> 00:24:50,960
on TPM<font color="#E5E5E5"> where the root of trust in is TPM</font>

455
00:24:47,570 --> 00:24:56,389
<font color="#E5E5E5">but all the secrets and all the code</font>

456
00:24:50,960 --> 00:24:59,480
implementation stirred inside<font color="#CCCCCC"> buyers</font><font color="#E5E5E5"> so</font>

457
00:24:56,390 --> 00:25:04,040
and<font color="#E5E5E5"> it's still attack surface will be in</font>

458
00:24:59,480 --> 00:25:07,670
firmer right and only verified boot has

459
00:25:04,040 --> 00:25:10,220
some<font color="#CCCCCC"> field</font><font color="#E5E5E5"> program</font><font color="#CCCCCC"> infuse hash value</font>

460
00:25:07,670 --> 00:25:12,890
which is log root of trust inside the

461
00:25:10,220 --> 00:25:18,100
<font color="#E5E5E5">hardware and here is firmware and</font>

462
00:25:12,890 --> 00:25:23,090
hardware attack surface came so let's

463
00:25:18,100 --> 00:25:27,679
talk a<font color="#E5E5E5"> bit why boot guard has been</font>

464
00:25:23,090 --> 00:25:29,929
<font color="#E5E5E5">created so classical secure boot can be</font>

465
00:25:27,680 --> 00:25:32,590
starts from the Dixie phase which<font color="#CCCCCC"> is</font>

466
00:25:29,930 --> 00:25:36,020
most threatened face just before

467
00:25:32,590 --> 00:25:39,230
<font color="#E5E5E5">firmware</font><font color="#CCCCCC"> plus the</font><font color="#E5E5E5"> control to the</font>

468
00:25:36,020 --> 00:25:43,629
operating<font color="#E5E5E5"> system but loaders and it can</font>

469
00:25:39,230 --> 00:25:47,240
be impacted<font color="#CCCCCC"> with</font><font color="#E5E5E5"> any</font><font color="#CCCCCC"> SMM issues or like</font>

470
00:25:43,630 --> 00:25:48,740
<font color="#CCCCCC">SMM or bios implant</font><font color="#E5E5E5"> not all of the</font><font color="#CCCCCC"> bios</font>

471
00:25:47,240 --> 00:25:53,780
in points but<font color="#E5E5E5"> from with some unbiased</font>

472
00:25:48,740 --> 00:25:56,720
<font color="#E5E5E5">implants definitely</font><font color="#CCCCCC"> and also it</font><font color="#E5E5E5"> was no</font>

473
00:25:53,780 --> 00:25:59,090
verification for early boot stages like

474
00:25:56,720 --> 00:26:03,590
second platform initialization<font color="#E5E5E5"> boot</font>

475
00:25:59,090 --> 00:26:07,580
phases from<font color="#E5E5E5"> other side measure it boot</font>

476
00:26:03,590 --> 00:26:10,429
starts just before<font color="#E5E5E5"> pay face which is</font>

477
00:26:07,580 --> 00:26:15,320
<font color="#E5E5E5">platform</font><font color="#CCCCCC"> installation and can be also</font>

478
00:26:10,430 --> 00:26:17,360
impacted with<font color="#CCCCCC"> the same issues and as we</font>

479
00:26:15,320 --> 00:26:19,990
said<font color="#E5E5E5"> before the root of trust moved</font>

480
00:26:17,360 --> 00:26:24,729
<font color="#CCCCCC">visibly fight boot to the</font><font color="#E5E5E5"> hardware and</font>

481
00:26:19,990 --> 00:26:26,160
<font color="#E5E5E5">it's how actually into boot guard</font>

482
00:26:24,730 --> 00:26:31,560
<font color="#E5E5E5">protect</font>

483
00:26:26,160 --> 00:26:38,700
in most like stricted<font color="#E5E5E5"> mod the chain of</font>

484
00:26:31,560 --> 00:26:41,399
trust and also<font color="#E5E5E5"> for foremost strongest</font>

485
00:26:38,700 --> 00:26:43,860
protection<font color="#CCCCCC"> verification should rely on</font>

486
00:26:41,400 --> 00:26:47,760
microcode identification as example

487
00:26:43,860 --> 00:26:50,250
microcode is out indicate a CMS for

488
00:26:47,760 --> 00:26:53,129
being executed<font color="#CCCCCC"> this picture I copied</font>

489
00:26:50,250 --> 00:26:55,890
from Vincent Zimmer's<font color="#CCCCCC"> block</font><font color="#E5E5E5"> and it's</font>

490
00:26:53,130 --> 00:27:00,230
actually first picture which<font color="#CCCCCC"> is show</font>

491
00:26:55,890 --> 00:27:03,660
some details about<font color="#CCCCCC"> food guard technology</font>

492
00:27:00,230 --> 00:27:07,710
but it's no open<font color="#CCCCCC"> specification and it's</font>

493
00:27:03,660 --> 00:27:11,970
actually<font color="#E5E5E5"> pretty old picture and I start</font>

494
00:27:07,710 --> 00:27:14,430
<font color="#E5E5E5">actually my research from here and start</font>

495
00:27:11,970 --> 00:27:19,860
<font color="#CCCCCC">figuring out how actually boot guard</font>

496
00:27:14,430 --> 00:27:21,390
flow works and this picture<font color="#CCCCCC"> actually</font>

497
00:27:19,860 --> 00:27:25,439
demonstrates some<font color="#E5E5E5"> high level</font><font color="#CCCCCC"> overview</font>

498
00:27:21,390 --> 00:27:27,360
how it's started so we have a<font color="#E5E5E5"> CPU reset</font>

499
00:27:25,440 --> 00:27:31,290
which is<font color="#E5E5E5"> passed control to the CPU</font>

500
00:27:27,360 --> 00:27:33,600
microcode<font color="#E5E5E5"> and identification and wrote</font>

501
00:27:31,290 --> 00:27:35,629
from<font color="#CCCCCC"> BIOS</font><font color="#E5E5E5"> update image actually</font><font color="#CCCCCC"> ACM</font>

502
00:27:33,600 --> 00:27:37,679
start and<font color="#CCCCCC"> BIOS</font><font color="#E5E5E5"> update image and if</font>

503
00:27:35,630 --> 00:27:40,800
identification from<font color="#CCCCCC"> micro code files</font>

504
00:27:37,680 --> 00:27:42,120
attacker<font color="#E5E5E5"> just can use some malicious or</font>

505
00:27:40,800 --> 00:27:49,280
modified<font color="#CCCCCC"> ACMs</font>

506
00:27:42,120 --> 00:27:54,179
and<font color="#CCCCCC"> ECM verifies the flow after</font><font color="#E5E5E5"> that and</font>

507
00:27:49,280 --> 00:27:56,220
pass the control to reset vector and<font color="#CCCCCC"> IBB</font>

508
00:27:54,180 --> 00:27:59,070
which is initial boot block<font color="#E5E5E5"> it's some</font>

509
00:27:56,220 --> 00:28:02,280
hashes values which is very find a

510
00:27:59,070 --> 00:28:05,399
second zap a<font color="#CCCCCC"> face and</font><font color="#E5E5E5"> after that</font><font color="#CCCCCC"> just</font>

511
00:28:02,280 --> 00:28:10,220
<font color="#CCCCCC">pass the control to</font><font color="#E5E5E5"> the classical secure</font>

512
00:28:05,400 --> 00:28:10,220
boot<font color="#E5E5E5"> and operating system will be loaded</font>

513
00:28:10,970 --> 00:28:17,430
into boot guard<font color="#CCCCCC"> technology has a few</font>

514
00:28:13,740 --> 00:28:19,830
<font color="#E5E5E5">different operating modes and most</font>

515
00:28:17,430 --> 00:28:21,750
strongest<font color="#CCCCCC"> not its verified</font><font color="#E5E5E5"> boot when the</font>

516
00:28:19,830 --> 00:28:24,990
root of trust<font color="#E5E5E5"> as I say lock it in the</font>

517
00:28:21,750 --> 00:28:27,390
hardware<font color="#E5E5E5"> and you can also use in the</font>

518
00:28:24,990 --> 00:28:28,890
<font color="#E5E5E5">both mods like measure it</font><font color="#CCCCCC"> boot bruce</font>

519
00:28:27,390 --> 00:28:34,500
verified boot which is<font color="#E5E5E5"> most strongest</font>

520
00:28:28,890 --> 00:28:36,330
<font color="#CCCCCC">mode for the intel good guard this</font>

521
00:28:34,500 --> 00:28:38,300
picture<font color="#E5E5E5"> i also copied from vincent</font>

522
00:28:36,330 --> 00:28:43,760
Zimmer's<font color="#E5E5E5"> blog post</font>

523
00:28:38,300 --> 00:28:49,580
and let's and let's look how actually

524
00:28:43,760 --> 00:28:51,830
<font color="#E5E5E5">policy policy verification</font><font color="#CCCCCC"> works so on</font>

525
00:28:49,580 --> 00:28:55,399
the different phases<font color="#CCCCCC"> we have a different</font>

526
00:28:51,830 --> 00:28:59,510
policy<font color="#E5E5E5"> and I start figuring out how</font><font color="#CCCCCC"> it</font>

527
00:28:55,400 --> 00:29:01,640
really works<font color="#E5E5E5"> so and the start point it's</font>

528
00:28:59,510 --> 00:29:05,720
actually<font color="#CCCCCC"> filled</font><font color="#E5E5E5"> program and views after</font>

529
00:29:01,640 --> 00:29:08,240
<font color="#CCCCCC">that</font><font color="#E5E5E5"> we do have like</font><font color="#CCCCCC"> IBB which is</font>

530
00:29:05,720 --> 00:29:15,230
initial boot block and<font color="#CCCCCC"> ICM</font><font color="#E5E5E5"> actually</font>

531
00:29:08,240 --> 00:29:18,530
verify<font color="#E5E5E5"> IBB and this picture actually</font>

532
00:29:15,230 --> 00:29:21,140
<font color="#E5E5E5">demonstrate in my opinion like real</font>

533
00:29:18,530 --> 00:29:26,360
<font color="#E5E5E5">world picture at</font><font color="#CCCCCC"> least for some of</font><font color="#E5E5E5"> the</font>

534
00:29:21,140 --> 00:29:30,550
bias vendors<font color="#E5E5E5"> and I as I say on beginning</font>

535
00:29:26,360 --> 00:29:35,840
<font color="#E5E5E5">i reconstructed american megatrends bias</font>

536
00:29:30,550 --> 00:29:39,830
and this probably looks very close as it

537
00:29:35,840 --> 00:29:42,678
<font color="#CCCCCC">is in standard</font><font color="#E5E5E5"> so and also</font><font color="#CCCCCC"> it's been</font>

538
00:29:39,830 --> 00:29:48,500
<font color="#E5E5E5">extracted by reverse engineering</font><font color="#CCCCCC"> so we</font>

539
00:29:42,679 --> 00:29:53,960
have a<font color="#CCCCCC"> que manifest which</font><font color="#E5E5E5"> is</font><font color="#CCCCCC"> store hash</font>

540
00:29:48,500 --> 00:29:56,600
of<font color="#CCCCCC"> IBB public key and om root public key</font>

541
00:29:53,960 --> 00:29:59,710
and actually I am<font color="#E5E5E5"> route public key is</font>

542
00:29:56,600 --> 00:30:04,129
should<font color="#E5E5E5"> be logged by field</font><font color="#CCCCCC"> program infuse</font>

543
00:29:59,710 --> 00:30:07,670
if it is not actually it can be<font color="#CCCCCC"> an</font><font color="#E5E5E5"> issue</font>

544
00:30:04,130 --> 00:30:12,980
<font color="#E5E5E5">but it's not enough I will say why a</font>

545
00:30:07,670 --> 00:30:15,380
little<font color="#CCCCCC"> bit later</font><font color="#E5E5E5"> on my voice and this</font>

546
00:30:12,980 --> 00:30:20,120
kind of policies stir it inside the BIOS

547
00:30:15,380 --> 00:30:23,059
update image so any attacker has access

548
00:30:20,120 --> 00:30:25,250
to<font color="#E5E5E5"> the bios update image it's</font><font color="#CCCCCC"> mean like</font>

549
00:30:23,059 --> 00:30:30,080
<font color="#CCCCCC">he can download from</font><font color="#E5E5E5"> this</font><font color="#CCCCCC"> vendor side</font>

550
00:30:25,250 --> 00:30:32,870
and play it<font color="#E5E5E5"> on top of it</font><font color="#CCCCCC"> a bit so only</font>

551
00:30:30,080 --> 00:30:34,699
<font color="#E5E5E5">this part rely on the hardware all this</font>

552
00:30:32,870 --> 00:30:40,850
<font color="#E5E5E5">part actually</font><font color="#CCCCCC"> store inside</font><font color="#E5E5E5"> the firmware</font>

553
00:30:34,700 --> 00:30:44,300
and<font color="#E5E5E5"> it's actually this picture</font>

554
00:30:40,850 --> 00:30:46,850
demonstrates the<font color="#CCCCCC"> route of</font><font color="#E5E5E5"> trust and this</font>

555
00:30:44,300 --> 00:30:50,270
been specifically released<font color="#E5E5E5"> before my</font>

556
00:30:46,850 --> 00:30:52,790
talk<font color="#CCCCCC"> on blackhat by</font><font color="#E5E5E5"> Dell and it's most</font>

557
00:30:50,270 --> 00:30:55,470
actually<font color="#E5E5E5"> detail</font><font color="#CCCCCC"> it</font>

558
00:30:52,790 --> 00:30:57,690
information about<font color="#E5E5E5"> how boot guard works</font>

559
00:30:55,470 --> 00:31:01,070
from some of the vendor which is has

560
00:30:57,690 --> 00:31:03,870
access to<font color="#E5E5E5"> the documentation</font>

561
00:31:01,070 --> 00:31:07,649
yeah and it's actually the same<font color="#CCCCCC"> thing</font>

562
00:31:03,870 --> 00:31:12,290
<font color="#CCCCCC">but relying on Dell documentation which</font>

563
00:31:07,650 --> 00:31:15,870
is<font color="#E5E5E5"> we seen before and I actually checked</font>

564
00:31:12,290 --> 00:31:19,290
different vendors configuration for the

565
00:31:15,870 --> 00:31:23,159
boot guard<font color="#E5E5E5"> and buyers guard and we can</font>

566
00:31:19,290 --> 00:31:26,879
see how different it<font color="#E5E5E5"> is for different</font>

567
00:31:23,160 --> 00:31:29,790
<font color="#E5E5E5">vendors and some of them using the boot</font>

568
00:31:26,880 --> 00:31:34,080
guard<font color="#E5E5E5"> but don't use</font><font color="#CCCCCC"> the BIOS guard</font><font color="#E5E5E5"> which</font>

569
00:31:29,790 --> 00:31:39,120
is<font color="#E5E5E5"> actually make BIOS update process</font>

570
00:31:34,080 --> 00:31:42,840
much more unsecure and most actually

571
00:31:39,120 --> 00:31:48,989
worst ones<font color="#CCCCCC"> its gigabyte</font><font color="#E5E5E5"> MSI and a so</font>

572
00:31:42,840 --> 00:31:51,570
<font color="#E5E5E5">straggling but also some of the</font><font color="#CCCCCC"> vendors</font>

573
00:31:48,990 --> 00:31:57,090
like Lenovo<font color="#E5E5E5"> on some of the platforms</font>

574
00:31:51,570 --> 00:31:59,370
<font color="#CCCCCC">don't use at all the boot guard but so</font>

575
00:31:57,090 --> 00:32:02,520
it's possible<font color="#CCCCCC"> because it should cost</font>

576
00:31:59,370 --> 00:32:06,780
some money right for more<font color="#E5E5E5"> expensive</font>

577
00:32:02,520 --> 00:32:14,850
systems they do but this kind of systems

578
00:32:06,780 --> 00:32:18,270
<font color="#CCCCCC">I a bit research</font><font color="#E5E5E5"> for my talk so as you</font>

579
00:32:14,850 --> 00:32:24,719
can see<font color="#CCCCCC"> trust</font><font color="#E5E5E5"> no-one because if</font><font color="#CCCCCC"> you see</font>

580
00:32:18,270 --> 00:32:27,090
on on some<font color="#E5E5E5"> information feature</font>

581
00:32:24,720 --> 00:32:30,210
information<font color="#CCCCCC"> on the website they use</font>

582
00:32:27,090 --> 00:32:32,959
something<font color="#CCCCCC"> or not it's just say they have</font>

583
00:32:30,210 --> 00:32:35,640
this technology<font color="#CCCCCC"> in your</font><font color="#E5E5E5"> hardware but how</font>

584
00:32:32,960 --> 00:32:39,060
<font color="#CCCCCC">properly they use you don't know Willian</font>

585
00:32:35,640 --> 00:32:41,100
<font color="#CCCCCC">and for specifically for preventing</font>

586
00:32:39,060 --> 00:32:43,649
supply chain attacks it's very important

587
00:32:41,100 --> 00:32:45,840
to<font color="#E5E5E5"> actually make some validation process</font>

588
00:32:43,650 --> 00:32:51,780
for the<font color="#E5E5E5"> hardware before it will be</font>

589
00:32:45,840 --> 00:32:55,139
<font color="#E5E5E5">shipped to the data centers first</font>

590
00:32:51,780 --> 00:32:58,200
<font color="#CCCCCC">information about the boot guard came</font>

591
00:32:55,140 --> 00:33:00,780
<font color="#E5E5E5">from</font><font color="#CCCCCC"> Alex Ermolov</font><font color="#E5E5E5"> on last year zero</font>

592
00:32:58,200 --> 00:33:03,870
night talk and it's interesting<font color="#E5E5E5"> because</font>

593
00:33:00,780 --> 00:33:05,170
he<font color="#CCCCCC"> found the system from gigabyte</font><font color="#E5E5E5"> which</font>

594
00:33:03,870 --> 00:33:08,500
<font color="#CCCCCC">is</font>

595
00:33:05,170 --> 00:33:11,770
<font color="#CCCCCC">the boot guard but the boot guard</font><font color="#E5E5E5"> not</font>

596
00:33:08,500 --> 00:33:18,090
been<font color="#CCCCCC"> enabled and not been actually</font>

597
00:33:11,770 --> 00:33:21,190
configured<font color="#E5E5E5"> so if attacker know how</font>

598
00:33:18,090 --> 00:33:27,179
modify this technology<font color="#CCCCCC"> in active stage</font>

599
00:33:21,190 --> 00:33:30,910
and then deliver malicious update the

600
00:33:27,180 --> 00:33:34,410
actually attacker can just walk the

601
00:33:30,910 --> 00:33:37,930
route kid inside<font color="#E5E5E5"> your firmware and</font>

602
00:33:34,410 --> 00:33:40,570
because that hacker has a private key

603
00:33:37,930 --> 00:33:44,890
for the<font color="#E5E5E5"> all the policies and it will be</font>

604
00:33:40,570 --> 00:33:47,110
locked by<font color="#CCCCCC"> fueled programming views it's</font>

605
00:33:44,890 --> 00:33:49,810
no way how you can<font color="#CCCCCC"> update or extract</font>

606
00:33:47,110 --> 00:33:53,040
this rootkit<font color="#CCCCCC"> so it will be locket</font>

607
00:33:49,810 --> 00:33:56,649
forever<font color="#CCCCCC"> it just need</font><font color="#E5E5E5"> like what of</font>

608
00:33:53,040 --> 00:34:01,990
probably<font color="#CCCCCC"> it's you just provide this to</font>

609
00:33:56,650 --> 00:34:04,630
trash the hardware<font color="#E5E5E5"> so it's how it looks</font>

610
00:34:01,990 --> 00:34:08,830
in<font color="#E5E5E5"> in config in policies inside</font>

611
00:34:04,630 --> 00:34:11,290
<font color="#E5E5E5">Fito into flash image though and you can</font>

612
00:34:08,830 --> 00:34:15,400
see like boot guard<font color="#E5E5E5"> doesn't enable it</font>

613
00:34:11,290 --> 00:34:19,989
and<font color="#CCCCCC"> om public hash key is zeros so and</font>

614
00:34:15,400 --> 00:34:21,190
also<font color="#E5E5E5"> in this case</font><font color="#CCCCCC"> field programming</font><font color="#E5E5E5"> fuse</font>

615
00:34:19,989 --> 00:34:24,279
<font color="#E5E5E5">not been set up</font>

616
00:34:21,190 --> 00:34:26,320
so<font color="#E5E5E5"> that's mean like attacker modifies</font>

617
00:34:24,280 --> 00:34:29,610
the public hash key delivers the

618
00:34:26,320 --> 00:34:32,500
malicious update and lock the fuse<font color="#E5E5E5"> so</font>

619
00:34:29,610 --> 00:34:35,260
but here

620
00:34:32,500 --> 00:34:41,050
<font color="#E5E5E5">why would guard not been enabled</font><font color="#CCCCCC"> it's</font>

621
00:34:35,260 --> 00:34:44,940
not bypass<font color="#E5E5E5"> it just like Alex use it</font><font color="#CCCCCC"> boot</font>

622
00:34:41,050 --> 00:34:47,410
guard<font color="#E5E5E5"> for enabling the boot guard and</font>

623
00:34:44,940 --> 00:34:53,040
show how the rootkit can be locked

624
00:34:47,409 --> 00:34:56,080
inside the platform<font color="#CCCCCC"> as a POC</font><font color="#E5E5E5"> but as</font>

625
00:34:53,040 --> 00:34:58,570
somebody on<font color="#CCCCCC"> Twitter says you never</font>

626
00:34:56,080 --> 00:35:01,110
attack the<font color="#E5E5E5"> standard you always attack</font><font color="#CCCCCC"> oh</font>

627
00:34:58,570 --> 00:35:05,610
yeah you<font color="#E5E5E5"> always attack implementation</font>

628
00:35:01,110 --> 00:35:09,730
and I actually get<font color="#CCCCCC"> to</font><font color="#E5E5E5"> look inside how</font>

629
00:35:05,610 --> 00:35:15,510
specific platforms<font color="#CCCCCC"> works for validate</font>

630
00:35:09,730 --> 00:35:15,510
the bias as a boot guard and

631
00:35:16,340 --> 00:35:20,600
as we can see like came when<font color="#E5E5E5"> you</font><font color="#CCCCCC"> first</font>

632
00:35:18,950 --> 00:35:24,169
and it's startin to<font color="#E5E5E5"> you</font><font color="#CCCCCC"> Pfeiffer</font><font color="#E5E5E5"> very</font>

633
00:35:20,600 --> 00:35:29,630
much I'll construct some of the field

634
00:35:24,170 --> 00:35:32,990
for from the this structure and we can

635
00:35:29,630 --> 00:35:35,750
see here is a<font color="#E5E5E5"> public key and if a</font><font color="#CCCCCC"> tiger</font>

636
00:35:32,990 --> 00:35:38,149
if root of trust not<font color="#E5E5E5"> locked in the card</font>

637
00:35:35,750 --> 00:35:40,400
where attacker just can change all the

638
00:35:38,150 --> 00:35:49,040
keys right<font color="#E5E5E5"> so modify all</font><font color="#CCCCCC"> the policies if</font>

639
00:35:40,400 --> 00:35:52,040
he knows<font color="#E5E5E5"> where stored where what and</font><font color="#CCCCCC"> we</font>

640
00:35:49,040 --> 00:35:55,550
do have<font color="#CCCCCC"> IBM cache which is</font><font color="#E5E5E5"> also need to</font>

641
00:35:52,040 --> 00:35:58,700
be change it for for for<font color="#CCCCCC"> that hack on</font>

642
00:35:55,550 --> 00:36:00,950
<font color="#E5E5E5">the boot guard but I will discuss</font><font color="#CCCCCC"> all</font>

643
00:35:58,700 --> 00:36:05,299
the flow a bit<font color="#E5E5E5"> later</font><font color="#CCCCCC"> also I</font><font color="#E5E5E5"> will</font>

644
00:36:00,950 --> 00:36:09,350
construct initial<font color="#CCCCCC"> blog boot manifest it</font>

645
00:36:05,300 --> 00:36:12,530
is here<font color="#E5E5E5"> so we have IBB hashes which</font><font color="#CCCCCC"> is</font>

646
00:36:09,350 --> 00:36:15,740
actually<font color="#E5E5E5"> validate</font><font color="#CCCCCC"> ii pay phase and i</font>

647
00:36:12,530 --> 00:36:19,700
will be<font color="#E5E5E5"> offset which is shows where</font><font color="#CCCCCC"> it</font>

648
00:36:15,740 --> 00:36:25,100
specifically located<font color="#E5E5E5"> protected regions</font>

649
00:36:19,700 --> 00:36:27,710
<font color="#E5E5E5">in size if you fi bias so and also we</font>

650
00:36:25,100 --> 00:36:33,290
have a<font color="#CCCCCC"> RSA signature which is can</font><font color="#E5E5E5"> be</font>

651
00:36:27,710 --> 00:36:37,490
changed and public key of course<font color="#CCCCCC"> -</font><font color="#E5E5E5"> so if</font>

652
00:36:33,290 --> 00:36:40,670
<font color="#CCCCCC">I - some time ago</font><font color="#E5E5E5"> already shows and</font>

653
00:36:37,490 --> 00:36:43,129
<font color="#CCCCCC">parse</font><font color="#E5E5E5"> in the feed boot guard policy and</font>

654
00:36:40,670 --> 00:36:46,370
<font color="#CCCCCC">Kim Yuna first</font><font color="#E5E5E5"> policy and also shows</font>

655
00:36:43,130 --> 00:36:51,980
where the<font color="#E5E5E5"> ECM stored so you can</font><font color="#CCCCCC"> easily</font>

656
00:36:46,370 --> 00:36:55,009
extract that it's because in<font color="#CCCCCC"> GDK we have</font>

657
00:36:51,980 --> 00:36:59,360
a values for the feed structure which is

658
00:36:55,010 --> 00:37:04,510
shows where where where it's based off

659
00:36:59,360 --> 00:37:07,940
set for for the specific policies and

660
00:37:04,510 --> 00:37:11,030
it's actually how initial<font color="#E5E5E5"> boot block</font>

661
00:37:07,940 --> 00:37:18,890
looks like so we have<font color="#CCCCCC"> cash value and</font>

662
00:37:11,030 --> 00:37:21,080
<font color="#E5E5E5">offset so and it's example specifically</font>

663
00:37:18,890 --> 00:37:26,319
for this<font color="#CCCCCC"> IB B which</font><font color="#E5E5E5"> is</font><font color="#CCCCCC"> the window</font>

664
00:37:21,080 --> 00:37:30,319
covered by<font color="#CCCCCC"> these hashes</font><font color="#E5E5E5"> and also if the</font>

665
00:37:26,320 --> 00:37:33,979
vendor<font color="#E5E5E5"> make a mistake on the</font>

666
00:37:30,319 --> 00:37:37,219
hovering<font color="#E5E5E5"> the</font><font color="#CCCCCC"> BIOS</font><font color="#E5E5E5"> update with IBB hashes</font>

667
00:37:33,979 --> 00:37:39,769
<font color="#E5E5E5">so it can be some window which has been</font>

668
00:37:37,219 --> 00:37:41,869
unprotected<font color="#CCCCCC"> an attacker can use it for</font>

669
00:37:39,769 --> 00:37:46,339
modifying that<font color="#E5E5E5"> if it will be</font><font color="#CCCCCC"> like</font>

670
00:37:41,869 --> 00:37:52,789
<font color="#E5E5E5">executable code it's like the flow for</font>

671
00:37:46,339 --> 00:37:57,170
delivering some rootkit<font color="#E5E5E5"> also interesting</font>

672
00:37:52,789 --> 00:38:01,969
part it's authenticated code model which

673
00:37:57,170 --> 00:38:05,479
is all the ACMs<font color="#E5E5E5"> which is</font><font color="#CCCCCC"> i seen before</font>

674
00:38:01,969 --> 00:38:08,719
<font color="#E5E5E5">like it's</font><font color="#CCCCCC"> shivered by intel</font><font color="#E5E5E5"> and it has</font>

675
00:38:05,479 --> 00:38:12,049
some<font color="#CCCCCC"> header which is</font><font color="#E5E5E5"> actually pointing</font>

676
00:38:08,719 --> 00:38:13,640
<font color="#CCCCCC">to entry point inside the ACM model and</font>

677
00:38:12,049 --> 00:38:18,579
they say model actually<font color="#CCCCCC"> executes since</font>

678
00:38:13,640 --> 00:38:24,589
the hash in the cache and<font color="#E5E5E5"> we do have</font><font color="#CCCCCC"> a</font>

679
00:38:18,579 --> 00:38:29,619
<font color="#E5E5E5">digital sign for</font><font color="#CCCCCC"> four for</font><font color="#E5E5E5"> each ACM model</font>

680
00:38:24,589 --> 00:38:32,828
and it's actually will<font color="#E5E5E5"> be verified by</font>

681
00:38:29,619 --> 00:38:32,829
micro code

682
00:38:36,960 --> 00:38:46,859
so what kind of things<font color="#E5E5E5"> actually</font><font color="#CCCCCC"> what</font>

683
00:38:41,490 --> 00:38:52,430
<font color="#E5E5E5">kind of parameters for for a cm we have</font>

684
00:38:46,859 --> 00:38:55,710
so<font color="#E5E5E5"> it's x86 code specifically 32-bit</font>

685
00:38:52,430 --> 00:38:58,680
<font color="#E5E5E5">execute in a serum</font><font color="#CCCCCC"> which is kind</font><font color="#E5E5E5"> of</font>

686
00:38:55,710 --> 00:39:05,190
<font color="#CCCCCC">caches Ram also known as non-addicted</font>

687
00:38:58,680 --> 00:39:08,029
mod and it's all the ACMs<font color="#CCCCCC"> it's CPU and</font>

688
00:39:05,190 --> 00:39:10,619
chipset specifics so it's because

689
00:39:08,030 --> 00:39:12,829
<font color="#E5E5E5">microcode willand</font><font color="#CCCCCC"> eight the sign so if</font>

690
00:39:10,619 --> 00:39:16,589
your<font color="#E5E5E5"> cpu generation doesn't have</font>

691
00:39:12,829 --> 00:39:21,720
verification<font color="#E5E5E5"> for your ACM it will be not</font>

692
00:39:16,589 --> 00:39:29,549
executed and<font color="#E5E5E5"> ACM verify the</font><font color="#CCCCCC"> community</font>

693
00:39:21,720 --> 00:39:32,609
and IBM policy<font color="#CCCCCC"> I start</font><font color="#E5E5E5"> thinking about</font>

694
00:39:29,550 --> 00:39:36,780
like okay<font color="#CCCCCC"> we have</font><font color="#E5E5E5"> executed executable</font>

695
00:39:32,609 --> 00:39:42,299
code inside a CMS<font color="#CCCCCC"> and I will construct</font>

696
00:39:36,780 --> 00:39:45,480
some some format and build some loader

697
00:39:42,299 --> 00:39:48,900
simple loader for Friday<font color="#E5E5E5"> but most</font>

698
00:39:45,480 --> 00:39:52,470
interesting<font color="#CCCCCC"> thing it's like how if we</font>

699
00:39:48,900 --> 00:39:56,099
<font color="#CCCCCC">bend Eve different generation of of</font><font color="#E5E5E5"> a</font>

700
00:39:52,470 --> 00:39:58,618
CMS actually a CMS for different

701
00:39:56,099 --> 00:40:00,390
generation of<font color="#E5E5E5"> CPUs</font><font color="#CCCCCC"> how it will</font><font color="#E5E5E5"> be looks</font>

702
00:39:58,619 --> 00:40:05,220
like for one<font color="#CCCCCC"> technology like a boot</font>

703
00:40:00,390 --> 00:40:07,650
guard right so and<font color="#E5E5E5"> actually ACM code</font>

704
00:40:05,220 --> 00:40:10,740
it's pretty complex we have<font color="#CCCCCC"> a flow even</font>

705
00:40:07,650 --> 00:40:19,349
like we have some cryptic verifications

706
00:40:10,740 --> 00:40:21,930
there for<font color="#E5E5E5"> sha-256</font><font color="#CCCCCC"> era say</font><font color="#E5E5E5"> and it's</font>

707
00:40:19,349 --> 00:40:28,230
everything is there<font color="#E5E5E5"> right so and it's</font>

708
00:40:21,930 --> 00:40:31,770
pretty complex technologies so<font color="#E5E5E5"> its flow</font>

709
00:40:28,230 --> 00:40:35,869
from a sim<font color="#E5E5E5"> but most interesting part</font>

710
00:40:31,770 --> 00:40:39,420
<font color="#E5E5E5">it's I make some bean dip with different</font>

711
00:40:35,869 --> 00:40:41,819
different generation of<font color="#E5E5E5"> CPUs so</font><font color="#CCCCCC"> has both</font>

712
00:40:39,420 --> 00:40:44,579
<font color="#E5E5E5">where's the sky wake and I doesn't found</font>

713
00:40:41,819 --> 00:40:47,730
too much here<font color="#CCCCCC"> I don't know maybe I've</font>

714
00:40:44,579 --> 00:40:50,560
<font color="#CCCCCC">been just unlucky but I found</font><font color="#E5E5E5"> the really</font>

715
00:40:47,730 --> 00:40:53,710
small change<font color="#CCCCCC"> but when</font><font color="#E5E5E5"> I</font>

716
00:40:50,560 --> 00:40:57,850
did some<font color="#CCCCCC"> bindi fees broad well where's</font>

717
00:40:53,710 --> 00:41:01,650
the sky<font color="#E5E5E5"> wake I found like a lot of</font>

718
00:40:57,850 --> 00:41:04,990
<font color="#CCCCCC">changes and</font><font color="#E5E5E5"> this changes show me like</font>

719
00:41:01,650 --> 00:41:07,990
this kind of parcels has a lot of<font color="#E5E5E5"> issues</font>

720
00:41:04,990 --> 00:41:11,649
<font color="#CCCCCC">like some of them integer overflows</font><font color="#E5E5E5"> some</font>

721
00:41:07,990 --> 00:41:13,569
of them really<font color="#E5E5E5"> like mistakes in the code</font>

722
00:41:11,650 --> 00:41:18,760
<font color="#CCCCCC">or whatever</font><font color="#E5E5E5"> but it's a lot</font><font color="#CCCCCC"> of patches</font>

723
00:41:13,570 --> 00:41:21,220
being there<font color="#CCCCCC"> so and let's talk a bit how</font>

724
00:41:18,760 --> 00:41:24,010
how<font color="#CCCCCC"> many components bias Guard has</font>

725
00:41:21,220 --> 00:41:26,379
incites bias so we do have<font color="#E5E5E5"> a platform</font>

726
00:41:24,010 --> 00:41:29,260
initialization<font color="#E5E5E5"> model model like boot</font>

727
00:41:26,380 --> 00:41:31,570
guard pay<font color="#CCCCCC"> SMA</font><font color="#E5E5E5"> which is actually verify</font>

728
00:41:29,260 --> 00:41:35,110
firmware boot guard from<font color="#CCCCCC"> ISM I am when</font>

729
00:41:31,570 --> 00:41:37,390
<font color="#CCCCCC">it will be like not fully rebooted</font><font color="#E5E5E5"> the</font>

730
00:41:35,110 --> 00:41:40,330
Carter will be<font color="#E5E5E5"> not fully rebooted and</font>

731
00:41:37,390 --> 00:41:43,810
it's just like warm<font color="#E5E5E5"> aggressive and Dixie</font>

732
00:41:40,330 --> 00:41:48,850
which is verify the boot guard for from

733
00:41:43,810 --> 00:41:54,180
s3<font color="#E5E5E5"> sleep mode here is a flow for the pay</font>

734
00:41:48,850 --> 00:41:59,770
validation and we can see here actually

735
00:41:54,180 --> 00:42:04,390
in this flow<font color="#CCCCCC"> its calculate the hash</font><font color="#E5E5E5"> and</font>

736
00:41:59,770 --> 00:42:07,840
it stores<font color="#E5E5E5"> the</font><font color="#CCCCCC"> hash but</font><font color="#E5E5E5"> we also have a</font>

737
00:42:04,390 --> 00:42:10,839
<font color="#E5E5E5">flock which is 0 or</font><font color="#CCCCCC"> 1 in specific case</font>

738
00:42:07,840 --> 00:42:14,230
and it shows<font color="#E5E5E5"> it's really dated or not</font>

739
00:42:10,840 --> 00:42:17,830
and it's passing<font color="#E5E5E5"> to good guard</font><font color="#CCCCCC"> dixie</font>

740
00:42:14,230 --> 00:42:25,570
driver so and it's actually will<font color="#CCCCCC"> a date</font>

741
00:42:17,830 --> 00:42:34,990
pay firmware hash which is covered<font color="#E5E5E5"> of</font>

742
00:42:25,570 --> 00:42:37,900
the firmware<font color="#E5E5E5"> in my case and what happens</font>

743
00:42:34,990 --> 00:42:40,799
actually<font color="#CCCCCC"> how how we fight would guard</font>

744
00:42:37,900 --> 00:42:45,160
from Assam and validation flow works

745
00:42:40,800 --> 00:42:47,320
<font color="#CCCCCC">it's fine and verify</font><font color="#E5E5E5"> ACM and verify all</font>

746
00:42:45,160 --> 00:42:49,870
the keys I will be a bit speed up

747
00:42:47,320 --> 00:42:54,010
because<font color="#E5E5E5"> I have just seven</font><font color="#CCCCCC"> minutes I</font>

748
00:42:49,870 --> 00:42:57,850
<font color="#CCCCCC">think so most interesting thing can this</font>

749
00:42:54,010 --> 00:42:59,020
wide as I say<font color="#E5E5E5"> it said flag for 0 to</font><font color="#CCCCCC"> 1</font>

750
00:42:57,850 --> 00:43:04,020
<font color="#CCCCCC">true or false</font>

751
00:42:59,020 --> 00:43:04,020
when the validation is right and

752
00:43:04,409 --> 00:43:10,659
here is actually yeah I<font color="#CCCCCC"> chose this issue</font>

753
00:43:07,569 --> 00:43:12,729
on on<font color="#CCCCCC"> blackhat now it's a rigid fix</font><font color="#E5E5E5"> it</font>

754
00:43:10,659 --> 00:43:14,739
on<font color="#E5E5E5"> mostly</font><font color="#CCCCCC"> on all the vendors and it's</font>

755
00:43:12,729 --> 00:43:17,319
been fun<font color="#CCCCCC"> because some of</font><font color="#E5E5E5"> the vendors</font>

756
00:43:14,739 --> 00:43:19,299
<font color="#E5E5E5">from like huge enterprises came to me</font>

757
00:43:17,319 --> 00:43:22,569
and say oh we just<font color="#E5E5E5"> recently patch it and</font>

758
00:43:19,299 --> 00:43:25,899
I don't<font color="#E5E5E5"> have</font><font color="#CCCCCC"> a time to really</font><font color="#E5E5E5"> like</font>

759
00:43:22,569 --> 00:43:32,969
follow all process to discuss this issue

760
00:43:25,899 --> 00:43:37,808
and<font color="#CCCCCC"> its</font><font color="#E5E5E5"> small back actually</font><font color="#CCCCCC"> and</font><font color="#E5E5E5"> think is</font>

761
00:43:32,969 --> 00:43:42,309
<font color="#CCCCCC">this logical</font><font color="#E5E5E5"> back opens the door when</font>

762
00:43:37,809 --> 00:43:44,969
you<font color="#CCCCCC"> have like a story set to put some</font>

763
00:43:42,309 --> 00:43:48,880
malicious components<font color="#CCCCCC"> are caught inside</font>

764
00:43:44,969 --> 00:43:53,349
<font color="#CCCCCC">your buyers and boot guard wheel</font><font color="#E5E5E5"> doesn't</font>

765
00:43:48,880 --> 00:43:56,679
help here and actually embedded as a

766
00:43:53,349 --> 00:44:00,699
company recently<font color="#E5E5E5"> based on top of my</font>

767
00:43:56,679 --> 00:44:05,319
<font color="#E5E5E5">research released</font><font color="#CCCCCC"> same thing to</font><font color="#E5E5E5"> Intel</font>

768
00:44:00,699 --> 00:44:07,569
knock and it's<font color="#CCCCCC"> a really budget and they</font>

769
00:44:05,319 --> 00:44:10,779
do have<font color="#CCCCCC"> some blog post which is a bit</font>

770
00:44:07,569 --> 00:44:17,769
<font color="#E5E5E5">provide more detail about how</font><font color="#CCCCCC"> they</font>

771
00:44:10,779 --> 00:44:22,029
exploited here<font color="#E5E5E5"> is my</font><font color="#CCCCCC"> target platform and</font>

772
00:44:17,769 --> 00:44:25,299
<font color="#CCCCCC">its sixth generation Quran skylake</font><font color="#E5E5E5"> bias</font>

773
00:44:22,029 --> 00:44:27,639
guard is enabled and<font color="#E5E5E5"> boot boot guard is</font>

774
00:44:25,299 --> 00:44:31,779
enabled by<font color="#E5E5E5"> as guard is not here is</font>

775
00:44:27,639 --> 00:44:33,639
vulnerabilities both<font color="#E5E5E5"> as we can see it's</font>

776
00:44:31,779 --> 00:44:35,469
for bypassing<font color="#E5E5E5"> the boot guards</font><font color="#CCCCCC"> need</font><font color="#E5E5E5"> to</font>

777
00:44:33,639 --> 00:44:37,839
<font color="#E5E5E5">vulnerabilities first</font><font color="#CCCCCC"> its write read</font>

778
00:44:35,469 --> 00:44:40,119
access<font color="#CCCCCC"> to me and second one</font><font color="#E5E5E5"> as a</font>

779
00:44:37,839 --> 00:44:43,119
configuration for the boot guard is not

780
00:44:40,119 --> 00:44:45,969
<font color="#CCCCCC">locked why we need</font><font color="#E5E5E5"> a vulnerability for</font><font color="#CCCCCC"> a</font>

781
00:44:43,119 --> 00:44:50,099
me because we need to lock the fuse and

782
00:44:45,969 --> 00:44:53,349
the fuse can be<font color="#CCCCCC"> locked only from</font><font color="#E5E5E5"> email</font>

783
00:44:50,099 --> 00:44:57,659
so here is the details from<font color="#E5E5E5"> intoa me</font>

784
00:44:53,349 --> 00:45:01,689
<font color="#CCCCCC">tool so on this platform</font><font color="#E5E5E5"> as we can see</font>

785
00:44:57,659 --> 00:45:05,739
if PF doesn't set but the public key for

786
00:45:01,689 --> 00:45:09,189
from I am is is in a place and we fight

787
00:45:05,739 --> 00:45:12,099
boot and<font color="#E5E5E5"> measured boot is enabled but</font>

788
00:45:09,189 --> 00:45:16,569
also we<font color="#CCCCCC"> can see like</font><font color="#E5E5E5"> a me region has</font>

789
00:45:12,099 --> 00:45:17,290
access for read<font color="#CCCCCC"> and write so here is</font>

790
00:45:16,569 --> 00:45:20,680
<font color="#CCCCCC">shows way</font>

791
00:45:17,290 --> 00:45:23,830
we have most strong mode for boot guard

792
00:45:20,680 --> 00:45:26,109
enabled and funny fact from gigabyte

793
00:45:23,830 --> 00:45:28,870
official website they<font color="#CCCCCC"> proposed this card</font>

794
00:45:26,110 --> 00:45:33,550
<font color="#E5E5E5">work for like governmental for critical</font>

795
00:45:28,870 --> 00:45:35,319
infrastructure<font color="#E5E5E5"> for hospitals but don't</font>

796
00:45:33,550 --> 00:45:38,650
care too much about<font color="#E5E5E5"> the security and</font>

797
00:45:35,320 --> 00:45:40,270
here is a flow which is shows how the

798
00:45:38,650 --> 00:45:42,730
boot guard can<font color="#CCCCCC"> be bypassed so we</font>

799
00:45:40,270 --> 00:45:44,890
actually because we control every all

800
00:45:42,730 --> 00:45:46,480
<font color="#E5E5E5">the structures or</font><font color="#CCCCCC"> the policies inside</font>

801
00:45:44,890 --> 00:45:52,750
the firmware we just modify all the

802
00:45:46,480 --> 00:45:55,420
<font color="#E5E5E5">things</font><font color="#CCCCCC"> like</font><font color="#E5E5E5"> and that's it and if it's</font>

803
00:45:52,750 --> 00:45:59,050
not<font color="#E5E5E5"> locked in the hardware so</font><font color="#CCCCCC"> we just</font>

804
00:45:55,420 --> 00:46:01,900
actually can bypass all<font color="#E5E5E5"> the boot guard</font>

805
00:45:59,050 --> 00:46:07,000
policies so here is the<font color="#CCCCCC"> intel statement</font>

806
00:46:01,900 --> 00:46:10,030
and intel<font color="#E5E5E5"> says like</font><font color="#CCCCCC"> third-party SI</font>

807
00:46:07,000 --> 00:46:12,850
babies should<font color="#CCCCCC"> actually lock the boot</font>

808
00:46:10,030 --> 00:46:18,130
guard<font color="#E5E5E5"> root of trust inside the hardware</font>

809
00:46:12,850 --> 00:46:22,360
<font color="#E5E5E5">and and it's probably written</font><font color="#CCCCCC"> in the</font>

810
00:46:18,130 --> 00:46:24,880
specification<font color="#CCCCCC"> too so it's</font><font color="#E5E5E5"> gigabyte</font>

811
00:46:22,360 --> 00:46:27,300
statement which<font color="#CCCCCC"> is say like they release</font>

812
00:46:24,880 --> 00:46:30,130
<font color="#E5E5E5">its update what the update should be</font>

813
00:46:27,300 --> 00:46:33,070
separately from the<font color="#CCCCCC"> bios update</font><font color="#E5E5E5"> download</font>

814
00:46:30,130 --> 00:46:35,110
from the website of vendor and installed

815
00:46:33,070 --> 00:46:40,660
and<font color="#CCCCCC"> i</font><font color="#E5E5E5"> don't know how</font><font color="#CCCCCC"> many users</font><font color="#E5E5E5"> will do</font>

816
00:46:35,110 --> 00:46:43,540
that<font color="#CCCCCC"> right this month</font><font color="#E5E5E5"> actually last</font>

817
00:46:40,660 --> 00:46:45,779
month<font color="#E5E5E5"> i developed</font><font color="#CCCCCC"> you fi to update for</font>

818
00:46:43,540 --> 00:46:51,310
into a boot guard visual verification

819
00:46:45,780 --> 00:46:53,680
<font color="#E5E5E5">and it shows specifically how many</font>

820
00:46:51,310 --> 00:46:55,720
firmware volumes<font color="#E5E5E5"> and what kind of</font>

821
00:46:53,680 --> 00:46:57,750
drivers is covered<font color="#E5E5E5"> here is a blog post</font>

822
00:46:55,720 --> 00:47:02,350
here is a link to<font color="#CCCCCC"> the tool</font><font color="#E5E5E5"> and</font>

823
00:46:57,750 --> 00:47:05,770
specifically<font color="#E5E5E5"> for blue</font><font color="#CCCCCC"> heart this</font><font color="#E5E5E5"> sunday</font>

824
00:47:02,350 --> 00:47:08,620
<font color="#CCCCCC">I push the update for you if I to in now</font>

825
00:47:05,770 --> 00:47:12,250
<font color="#CCCCCC">it supports</font><font color="#E5E5E5"> surface laptops</font><font color="#CCCCCC"> to and</font>

826
00:47:08,620 --> 00:47:14,680
actually<font color="#CCCCCC"> I've been</font><font color="#E5E5E5"> surprised and on</font>

827
00:47:12,250 --> 00:47:17,020
surface they did a bit<font color="#CCCCCC"> in-house</font>

828
00:47:14,680 --> 00:47:19,990
implementation of<font color="#E5E5E5"> into boot guard</font>

829
00:47:17,020 --> 00:47:21,970
technology<font color="#CCCCCC"> and it's much better than</font>

830
00:47:19,990 --> 00:47:25,450
others we under not all of the others

831
00:47:21,970 --> 00:47:27,569
but a lot<font color="#CCCCCC"> of</font><font color="#E5E5E5"> so here is a link on my</font>

832
00:47:25,450 --> 00:47:29,410
blog<font color="#CCCCCC"> cut research and actually</font><font color="#E5E5E5"> I will be</font>

833
00:47:27,570 --> 00:47:33,190
update

834
00:47:29,410 --> 00:47:36,009
after zero nights<font color="#E5E5E5"> with all the my</font>

835
00:47:33,190 --> 00:47:39,100
templates<font color="#CCCCCC"> 4:01</font><font color="#E5E5E5"> editor and all the</font>

836
00:47:36,010 --> 00:47:41,440
scripts<font color="#E5E5E5"> for item thank you</font><font color="#CCCCCC"> very</font><font color="#E5E5E5"> much for</font>

837
00:47:39,100 --> 00:47:43,360
<font color="#E5E5E5">your attention</font><font color="#CCCCCC"> and if you have any</font>

838
00:47:41,440 --> 00:47:45,970
questions I will be happy<font color="#CCCCCC"> to answer and</font>

839
00:47:43,360 --> 00:47:50,740
I hope you have the time<font color="#E5E5E5"> yeah we do have</font>

840
00:47:45,970 --> 00:47:52,200
<font color="#CCCCCC">three minutes</font><font color="#E5E5E5"> okay microphone runners</font>

841
00:47:50,740 --> 00:47:56,220
will be<font color="#E5E5E5"> ready to take your questions</font>

842
00:47:52,200 --> 00:47:56,220
<font color="#CCCCCC">make them interesting</font>

843
00:48:07,700 --> 00:48:15,640
<font color="#E5E5E5">I I noticed that you mentioned that only</font>

844
00:48:12,589 --> 00:48:19,029
<font color="#E5E5E5">some of the regions of buyers are</font>

845
00:48:15,640 --> 00:48:24,740
protected behind<font color="#E5E5E5"> the RSA signatures why</font>

846
00:48:19,030 --> 00:48:27,980
why<font color="#E5E5E5"> not sign the entire image instead so</font>

847
00:48:24,740 --> 00:48:30,379
<font color="#CCCCCC">they sign</font><font color="#E5E5E5"> so actually not like that</font>

848
00:48:27,980 --> 00:48:32,809
the signature protect<font color="#CCCCCC"> I BB which is</font>

849
00:48:30,380 --> 00:48:36,319
contains the hashes and as you can<font color="#E5E5E5"> see</font>

850
00:48:32,809 --> 00:48:38,599
<font color="#CCCCCC">like hashes is sign it and you can't</font>

851
00:48:36,319 --> 00:48:41,390
modify the hashes<font color="#CCCCCC"> and hashes actually</font>

852
00:48:38,599 --> 00:48:45,920
covered all the buyers usually<font color="#E5E5E5"> what it</font>

853
00:48:41,390 --> 00:48:48,470
is cannot so what what is<font color="#CCCCCC"> the</font><font color="#E5E5E5"> reason for</font>

854
00:48:45,920 --> 00:48:50,450
for<font color="#E5E5E5"> like even even allowing mechanism</font>

855
00:48:48,470 --> 00:48:53,359
make more flexible the technology for

856
00:48:50,450 --> 00:48:55,520
third parties so so that they don't<font color="#E5E5E5"> have</font>

857
00:48:53,359 --> 00:48:59,270
to go through hassles of signing every

858
00:48:55,520 --> 00:49:04,520
release<font color="#E5E5E5"> of bias or as examples they can</font>

859
00:48:59,270 --> 00:49:08,960
sign<font color="#E5E5E5"> different pieces of the image</font>

860
00:49:04,520 --> 00:49:12,200
<font color="#CCCCCC">different</font><font color="#E5E5E5"> way as example or one vendor</font>

861
00:49:08,960 --> 00:49:15,319
control sign of one piece and<font color="#E5E5E5"> another</font>

862
00:49:12,200 --> 00:49:18,399
from another<font color="#CCCCCC"> piece of image thank you I</font>

863
00:49:15,319 --> 00:49:24,520
don't know<font color="#CCCCCC"> it's my opinion</font><font color="#E5E5E5"> but I'm not a</font>

864
00:49:18,400 --> 00:49:27,170
<font color="#E5E5E5">hardware developer manufacturer and</font>

865
00:49:24,520 --> 00:49:31,869
actually<font color="#CCCCCC"> technology's</font><font color="#E5E5E5"> undocumented</font><font color="#CCCCCC"> is</font>

866
00:49:27,170 --> 00:49:31,869
just gas I can be wrong

867
00:49:41,590 --> 00:49:50,820
no more questions<font color="#CCCCCC"> just a simple one</font>

868
00:49:46,660 --> 00:49:50,819
<font color="#CCCCCC">when's the book gonna</font><font color="#E5E5E5"> be completed</font>

869
00:49:51,450 --> 00:50:01,149
when's the book gonna be ready<font color="#E5E5E5"> good the</font>

870
00:49:54,490 --> 00:50:04,810
book<font color="#E5E5E5"> Oh actually we made some early</font>

871
00:50:01,150 --> 00:50:07,600
release for the<font color="#CCCCCC"> DEF CON</font><font color="#E5E5E5"> and it's been</font>

872
00:50:04,810 --> 00:50:10,000
<font color="#E5E5E5">sold out so all the book it's already</font>

873
00:50:07,600 --> 00:50:13,060
ready early access will<font color="#CCCCCC"> be updated this</font>

874
00:50:10,000 --> 00:50:17,710
<font color="#E5E5E5">month for all the chapters and printed</font>

875
00:50:13,060 --> 00:50:19,299
in January sorry<font color="#CCCCCC"> have you guys</font>

876
00:50:17,710 --> 00:50:24,700
considered including<font color="#E5E5E5"> anything about</font>

877
00:50:19,300 --> 00:50:27,010
<font color="#CCCCCC">grayish we don't have so we already</font>

878
00:50:24,700 --> 00:50:28,689
extend like a lot of chapters for the

879
00:50:27,010 --> 00:50:36,390
bias and we have a pressure from

880
00:50:28,690 --> 00:50:39,490
publisher to not add anything<font color="#CCCCCC"> more so</font>

881
00:50:36,390 --> 00:50:41,350
probably<font color="#CCCCCC"> next book will be like open</font>

882
00:50:39,490 --> 00:50:44,439
<font color="#E5E5E5">wiki book because it will be easier</font><font color="#CCCCCC"> to</font>

883
00:50:41,350 --> 00:50:52,690
add more and more contact<font color="#E5E5E5"> and don't have</font>

884
00:50:44,440 --> 00:50:54,880
logistics with publisher<font color="#E5E5E5"> right</font><font color="#CCCCCC"> so in a</font>

885
00:50:52,690 --> 00:50:57,010
<font color="#E5E5E5">perfect world if you got to decide</font>

886
00:50:54,880 --> 00:50:59,590
<font color="#E5E5E5">exactly how the disclosure process went</font>

887
00:50:57,010 --> 00:51:02,980
with the vendors what would be<font color="#E5E5E5"> your</font><font color="#CCCCCC"> a</font>

888
00:50:59,590 --> 00:51:05,740
<font color="#E5E5E5">perfect version you know like it's</font>

889
00:51:02,980 --> 00:51:08,590
difficult<font color="#E5E5E5"> because perfect world for the</font>

890
00:51:05,740 --> 00:51:12,819
vendor it's one world<font color="#E5E5E5"> perfect world for</font>

891
00:51:08,590 --> 00:51:18,180
researcher<font color="#CCCCCC"> I I am both side side right</font>

892
00:51:12,820 --> 00:51:21,520
so it's difficult actually<font color="#CCCCCC"> I</font><font color="#E5E5E5"> think like</font>

893
00:51:18,180 --> 00:51:24,850
at least I<font color="#E5E5E5"> expect some collaboration</font>

894
00:51:21,520 --> 00:51:27,310
from the vendor side<font color="#E5E5E5"> because like if you</font>

895
00:51:24,850 --> 00:51:31,779
send something then like<font color="#E5E5E5"> send follow-up</font>

896
00:51:27,310 --> 00:51:34,390
email and the vendor like reply no box

897
00:51:31,780 --> 00:51:36,760
<font color="#E5E5E5">but then release its update silently</font>

898
00:51:34,390 --> 00:51:40,089
<font color="#E5E5E5">with your box budget it's a bad way</font>

899
00:51:36,760 --> 00:51:44,730
right<font color="#CCCCCC"> so here</font><font color="#E5E5E5"> is like some should be</font>

900
00:51:40,090 --> 00:51:49,000
best practices<font color="#E5E5E5"> exist</font><font color="#CCCCCC"> right for that like</font>

901
00:51:44,730 --> 00:51:51,280
be polite with researcher and the

902
00:51:49,000 --> 00:51:53,970
searcher will be<font color="#CCCCCC"> polite view people</font><font color="#E5E5E5"> head</font>

903
00:51:51,280 --> 00:51:53,970
with the vendor

904
00:51:55,310 --> 00:52:03,900
so because like in the<font color="#CCCCCC"> u5 world</font><font color="#E5E5E5"> it's not</font>

905
00:52:01,800 --> 00:52:06,180
<font color="#CCCCCC">a lot of</font><font color="#E5E5E5"> bug bounties actually</font><font color="#CCCCCC"> intel</font>

906
00:52:03,900 --> 00:52:08,790
<font color="#E5E5E5">offer one but it's</font><font color="#CCCCCC"> covered</font><font color="#E5E5E5"> on these</font>

907
00:52:06,180 --> 00:52:11,190
<font color="#CCCCCC">their products and their CPUs it's also</font>

908
00:52:08,790 --> 00:52:13,350
<font color="#E5E5E5">included the hardware box for</font><font color="#CCCCCC"> u5</font>

909
00:52:11,190 --> 00:52:15,060
firmware it's just for Xanax<font color="#E5E5E5"> NC servers</font>

910
00:52:13,350 --> 00:52:18,120
<font color="#E5E5E5">so it's not a lot</font>

911
00:52:15,060 --> 00:52:21,920
so probably Microsoft will be<font color="#E5E5E5"> introduced</font>

912
00:52:18,120 --> 00:52:33,440
some bug bounty for surface I don't know

913
00:52:21,920 --> 00:52:33,440
thank you one<font color="#E5E5E5"> more question here</font>

914
00:52:40,589 --> 00:52:46,509
just out of curiosity<font color="#CCCCCC"> you mentioned that</font>

915
00:52:44,140 --> 00:52:49,569
vendors have a lot like obviously have

916
00:52:46,510 --> 00:52:52,420
bugs<font color="#E5E5E5"> and then he asked us who updated</font>

917
00:52:49,569 --> 00:52:55,029
<font color="#E5E5E5">our</font><font color="#CCCCCC"> bias recently</font><font color="#E5E5E5"> so the question is</font>

918
00:52:52,420 --> 00:52:58,089
just again out of curiosity is<font color="#E5E5E5"> there any</font>

919
00:52:55,030 --> 00:53:00,099
common techniques or procedures<font color="#CCCCCC"> to</font>

920
00:52:58,089 --> 00:53:02,558
basically push the pressure on customer

921
00:53:00,099 --> 00:53:06,910
to update bias<font color="#E5E5E5"> or how it's done in</font>

922
00:53:02,559 --> 00:53:08,829
hardware<font color="#E5E5E5"> you can't push the customer</font>

923
00:53:06,910 --> 00:53:13,118
site and what you apply you update your

924
00:53:08,829 --> 00:53:16,660
bias or<font color="#CCCCCC"> none okay</font><font color="#E5E5E5"> I'm kidding</font>

925
00:53:13,119 --> 00:53:19,059
so actually it's no pressure<font color="#CCCCCC"> to to</font>

926
00:53:16,660 --> 00:53:22,540
customers because it's like<font color="#E5E5E5"> okay</font>

927
00:53:19,059 --> 00:53:24,700
<font color="#E5E5E5">probably</font><font color="#CCCCCC"> if updates</font><font color="#E5E5E5"> as example for</font>

928
00:53:22,540 --> 00:53:26,290
Windows software will be delivered by

929
00:53:24,700 --> 00:53:28,930
Windows Update process it will be

930
00:53:26,290 --> 00:53:31,410
perfect world<font color="#CCCCCC"> but it's like this perfect</font>

931
00:53:28,930 --> 00:53:35,290
<font color="#E5E5E5">world will be never happens because we</font>

932
00:53:31,410 --> 00:53:37,720
need from the vendor they should<font color="#CCCCCC"> prepare</font>

933
00:53:35,290 --> 00:53:40,119
the<font color="#E5E5E5"> update for specific time frame right</font>

934
00:53:37,720 --> 00:53:42,129
to be<font color="#E5E5E5"> delivered and also it should</font><font color="#CCCCCC"> be</font>

935
00:53:40,119 --> 00:53:44,020
like unified process<font color="#E5E5E5"> to update the</font>

936
00:53:42,130 --> 00:53:46,450
systems and this also will be<font color="#E5E5E5"> never</font>

937
00:53:44,020 --> 00:53:48,400
happens because all the vendors have

938
00:53:46,450 --> 00:53:52,058
<font color="#CCCCCC">some</font><font color="#E5E5E5"> house features which is very</font>

939
00:53:48,400 --> 00:53:53,920
<font color="#E5E5E5">specific for</font><font color="#CCCCCC"> us rail</font><font color="#E5E5E5"> hardware so and I</font>

940
00:53:52,059 --> 00:53:55,839
don't<font color="#E5E5E5"> know actually for the big</font>

941
00:53:53,920 --> 00:53:57,940
companies it's important<font color="#E5E5E5"> and</font>

942
00:53:55,839 --> 00:54:00,160
specifically also<font color="#E5E5E5"> for the data centers</font>

943
00:53:57,940 --> 00:54:02,740
<font color="#CCCCCC">it's important to probably have some</font>

944
00:54:00,160 --> 00:54:04,930
process<font color="#E5E5E5"> at least make some health checks</font>

945
00:54:02,740 --> 00:54:07,720
for their<font color="#E5E5E5"> Hardware of biases what I</font>

946
00:54:04,930 --> 00:54:12,578
think<font color="#E5E5E5"> but it's basically like you</font><font color="#CCCCCC"> know</font>

947
00:54:07,720 --> 00:54:15,129
on customer itself<font color="#E5E5E5"> no no unified</font>

948
00:54:12,579 --> 00:54:18,760
solution<font color="#E5E5E5"> here and it will be never</font>

949
00:54:15,130 --> 00:54:19,990
happen sexually<font color="#E5E5E5"> what I think</font><font color="#CCCCCC"> okay so</font>

950
00:54:18,760 --> 00:54:21,460
unfortunately<font color="#CCCCCC"> we</font><font color="#E5E5E5"> do have to end</font>

951
00:54:19,990 --> 00:54:22,058
questions for Alex because we have the

952
00:54:21,460 --> 00:54:23,740
next set

953
00:54:22,059 --> 00:54:25,010
so<font color="#E5E5E5"> round of applause for Alex</font><font color="#CCCCCC"> thank you</font>

954
00:54:23,740 --> 00:54:27,069
<font color="#CCCCCC">very much</font>

955
00:54:25,010 --> 00:54:27,070
you


