WEBVTT

1
00:00:00.040 --> 00:00:03.279
<v Speaker 1>Hey everyone, and welcome back. Yeah, welcome back to another

2
00:00:03.399 --> 00:00:04.040
<v Speaker 1>deep dive.

3
00:00:04.240 --> 00:00:05.240
<v Speaker 2>It's a deep dive.

4
00:00:05.360 --> 00:00:07.440
<v Speaker 1>You ready to get our hands dirty with some Oh

5
00:00:07.559 --> 00:00:10.599
<v Speaker 1>yeah absolutely or p ORC or GTFO volume three.

6
00:00:10.759 --> 00:00:12.240
<v Speaker 2>Yeah, digging right back in all right.

7
00:00:12.279 --> 00:00:15.240
<v Speaker 1>So just a reminder for listeners just joining us for

8
00:00:15.279 --> 00:00:18.399
<v Speaker 1>the first time, right, p WORC or GTFO Volume three

9
00:00:19.000 --> 00:00:19.600
<v Speaker 1>is a book.

10
00:00:20.000 --> 00:00:22.320
<v Speaker 2>It is a book, a real book. You can hold it.

11
00:00:22.320 --> 00:00:22.960
<v Speaker 1>It's fantastic.

12
00:00:23.039 --> 00:00:23.199
<v Speaker 2>Yeah.

13
00:00:23.239 --> 00:00:28.120
<v Speaker 1>It's a collection of various security research and kind of

14
00:00:28.359 --> 00:00:32.200
<v Speaker 1>proofs of concept, absolutely, and different kind of just deep

15
00:00:32.280 --> 00:00:35.439
<v Speaker 1>dives into various aspects of security.

16
00:00:34.960 --> 00:00:36.159
<v Speaker 2>Yep, and some hardware hacking.

17
00:00:36.320 --> 00:00:38.520
<v Speaker 1>Yeah, hard we're hacking all sorts of things.

18
00:00:38.600 --> 00:00:40.840
<v Speaker 2>Yeah, it's a really cool collection, really cool. Yeah.

19
00:00:40.920 --> 00:00:42.560
<v Speaker 1>So we're going to kind of jump around to different

20
00:00:42.640 --> 00:00:45.840
<v Speaker 1>sections from the book that that were really interesting. So

21
00:00:45.880 --> 00:00:47.880
<v Speaker 1>you get a little sampler platter, Yeah.

22
00:00:47.719 --> 00:00:49.479
<v Speaker 2>A little taste of everything.

23
00:00:49.399 --> 00:00:51.560
<v Speaker 1>Hopefully to entice you to go check out the book

24
00:00:51.560 --> 00:00:52.079
<v Speaker 1>for yourself.

25
00:00:52.159 --> 00:00:54.640
<v Speaker 2>Yeah. Okay, so let's jump in.

26
00:00:54.759 --> 00:00:57.399
<v Speaker 1>Let's jump right in. Yeah. First one we have is

27
00:00:57.880 --> 00:01:00.159
<v Speaker 1>this one was interesting to me just because.

28
00:01:00.159 --> 00:01:04.159
<v Speaker 2>That the target was so unexpected, unexpected, unexpected. Yeah, a

29
00:01:04.239 --> 00:01:04.959
<v Speaker 2>children's toy.

30
00:01:05.319 --> 00:01:06.400
<v Speaker 1>Yeah, who would have thought?

31
00:01:06.760 --> 00:01:10.120
<v Speaker 2>So we have the uh, it's the Pokemon z Ring,

32
00:01:10.200 --> 00:01:10.599
<v Speaker 2>that's right.

33
00:01:10.920 --> 00:01:14.519
<v Speaker 1>And this is security researcher named Vicky Fou who actually

34
00:01:14.879 --> 00:01:17.040
<v Speaker 1>decided to look into this and to break it, to

35
00:01:17.079 --> 00:01:19.480
<v Speaker 1>break it, figure out how it worked, and.

36
00:01:19.519 --> 00:01:20.280
<v Speaker 2>See what's going on.

37
00:01:20.480 --> 00:01:22.799
<v Speaker 1>So what's interesting about the z ring is it uses

38
00:01:23.000 --> 00:01:25.760
<v Speaker 1>ultrasonic frequencies which.

39
00:01:25.920 --> 00:01:28.480
<v Speaker 2>Most people can't hear. Yeah, you and I probably can't hear.

40
00:01:28.560 --> 00:01:30.519
<v Speaker 1>Yeah, we're getting old, I know, I know.

41
00:01:32.799 --> 00:01:36.359
<v Speaker 2>And so she had to actually use a special equipment

42
00:01:36.560 --> 00:01:40.480
<v Speaker 2>like in acilloscope to be able to see these sound waves.

43
00:01:40.159 --> 00:01:42.000
<v Speaker 1>In an emulator to run the game and.

44
00:01:41.920 --> 00:01:44.519
<v Speaker 2>An emulator, and so that she could really cool Yeah

45
00:01:44.560 --> 00:01:44.920
<v Speaker 2>she could.

46
00:01:45.040 --> 00:01:47.280
<v Speaker 1>I mean, it's just amazing to me. She went to

47
00:01:47.319 --> 00:01:50.840
<v Speaker 1>these lengths to figure this out, but it paid off

48
00:01:50.959 --> 00:01:52.799
<v Speaker 1>because she discovered some really interesting stuff.

49
00:01:53.280 --> 00:01:55.439
<v Speaker 2>Yeah. So I guess kind of the first question.

50
00:01:55.280 --> 00:01:57.799
<v Speaker 1>Like why why go to all this trouble for right?

51
00:01:58.200 --> 00:01:59.959
<v Speaker 2>Right? Why break a kid's.

52
00:01:59.799 --> 00:02:03.000
<v Speaker 1>To a children's toy? Yeah? What I think the you know,

53
00:02:03.040 --> 00:02:05.680
<v Speaker 1>the answer is the same for a lot of security researchers.

54
00:02:05.680 --> 00:02:07.519
<v Speaker 2>Curiosity. That's what drives a lot of this.

55
00:02:07.840 --> 00:02:10.159
<v Speaker 1>It's just that curiosity of how does this thing work?

56
00:02:10.400 --> 00:02:12.159
<v Speaker 2>Yeah? How does it work. What are its secrets?

57
00:02:12.319 --> 00:02:13.360
<v Speaker 1>Yeah, what are its secrets?

58
00:02:13.439 --> 00:02:16.159
<v Speaker 2>Can I control it? Can I make it do something

59
00:02:16.199 --> 00:02:17.639
<v Speaker 2>it wasn't intended to do?

60
00:02:17.840 --> 00:02:20.240
<v Speaker 1>Exactly? So I think for her it was kind of

61
00:02:20.240 --> 00:02:23.199
<v Speaker 1>a personal challenge of like, yeah, okay, this thing uses sound.

62
00:02:23.560 --> 00:02:26.120
<v Speaker 1>I want to figure out what sounds, what a secret

63
00:02:26.159 --> 00:02:28.639
<v Speaker 1>sound it's using, and how it's doing.

64
00:02:28.400 --> 00:02:30.400
<v Speaker 2>That, and how can I use those sound Yeah, kind

65
00:02:30.400 --> 00:02:33.599
<v Speaker 2>of replicate that to do something else, right, exactly.

66
00:02:33.240 --> 00:02:33.840
<v Speaker 1>So pretty cool.

67
00:02:33.919 --> 00:02:34.400
<v Speaker 2>It is cool.

68
00:02:34.599 --> 00:02:38.400
<v Speaker 1>Okay, So moving on to another one that I thought

69
00:02:38.520 --> 00:02:41.240
<v Speaker 1>was really interesting and a little mind bending.

70
00:02:41.360 --> 00:02:42.639
<v Speaker 2>This one's a little more technical.

71
00:02:42.960 --> 00:02:47.719
<v Speaker 1>Yeah it is. This is the flush plus reload side

72
00:02:47.800 --> 00:02:48.759
<v Speaker 1>channel attack.

73
00:02:48.919 --> 00:02:49.400
<v Speaker 2>Wow.

74
00:02:49.520 --> 00:02:53.680
<v Speaker 1>Yeah, So side channel attacks in general are just fascinating.

75
00:02:53.759 --> 00:02:55.280
<v Speaker 2>Yeah, side channel attacks because.

76
00:02:55.120 --> 00:02:57.080
<v Speaker 1>They're not what you think about when you think about

77
00:02:57.159 --> 00:02:58.039
<v Speaker 1>like typical hacking.

78
00:02:58.240 --> 00:03:01.159
<v Speaker 3>Right, it's not not like breaking You're not like breaking

79
00:03:01.199 --> 00:03:02.319
<v Speaker 3>down the door, right.

80
00:03:02.159 --> 00:03:05.039
<v Speaker 1>You're not brute forcing a password. Yeah, you're kind of

81
00:03:05.120 --> 00:03:08.800
<v Speaker 1>like looking for these like subtle little hints that the

82
00:03:08.840 --> 00:03:10.120
<v Speaker 1>system's giving off.

83
00:03:10.280 --> 00:03:11.599
<v Speaker 2>Yeah, it's like eavesdropping.

84
00:03:11.719 --> 00:03:14.919
<v Speaker 1>It is eavesdropping, rather than that's like the spycraft of hacking.

85
00:03:15.039 --> 00:03:16.759
<v Speaker 2>Yeah exactly. That's really cool.

86
00:03:16.840 --> 00:03:23.439
<v Speaker 1>So the flesh plus reload attack. Specifically, it kind of

87
00:03:23.479 --> 00:03:27.719
<v Speaker 1>exploits the way that modern CPUs use this shared memory

88
00:03:27.719 --> 00:03:31.560
<v Speaker 1>space called the L three cash. Yes, And so the idea.

89
00:03:31.400 --> 00:03:34.800
<v Speaker 2>Is, so all the programs on your computer are sharing

90
00:03:34.840 --> 00:03:38.080
<v Speaker 2>the space and accessing it to store data that they're

91
00:03:38.199 --> 00:03:42.039
<v Speaker 2>using frequently. So it's like a common area.

92
00:03:42.120 --> 00:03:44.680
<v Speaker 1>Yeah, like a whiteboard that everyone can exactly.

93
00:03:44.360 --> 00:03:48.719
<v Speaker 2>It's like a whiteboard. And so what the attacker can

94
00:03:48.759 --> 00:03:52.039
<v Speaker 2>do is they can basically flush a certain piece of

95
00:03:52.120 --> 00:03:53.280
<v Speaker 2>memory from the cash.

96
00:03:53.080 --> 00:03:54.840
<v Speaker 1>Force it out of the cash, Yeah, force it out.

97
00:03:54.879 --> 00:03:56.639
<v Speaker 1>So it's like a racing part of the whiteboard.

98
00:03:56.719 --> 00:03:58.879
<v Speaker 2>Yeah, raising part of the whiteboard, and then time how

99
00:03:58.919 --> 00:04:00.000
<v Speaker 2>long it takes.

100
00:04:00.039 --> 00:04:02.120
<v Speaker 1>And then see how long it takes for somebody else

101
00:04:02.159 --> 00:04:03.560
<v Speaker 1>to write in that same spot.

102
00:04:04.439 --> 00:04:07.240
<v Speaker 2>Yeah, for another process to write to that, Because.

103
00:04:06.960 --> 00:04:11.039
<v Speaker 1>If the victim process was using that data recently, yeah,

104
00:04:11.120 --> 00:04:12.879
<v Speaker 1>it's going to reload it back into the cash and

105
00:04:12.919 --> 00:04:14.800
<v Speaker 1>it's going to be faster, and that's going to be faster.

106
00:04:15.080 --> 00:04:17.720
<v Speaker 2>And so by timing how long that takes.

107
00:04:17.639 --> 00:04:20.519
<v Speaker 1>You can infer it. You can infer what the victim

108
00:04:20.560 --> 00:04:21.759
<v Speaker 1>process was doing.

109
00:04:21.600 --> 00:04:25.399
<v Speaker 2>Yeah, what data they were accessing. That's crazy, it is crazy.

110
00:04:25.439 --> 00:04:27.839
<v Speaker 2>It's like, so you can still data.

111
00:04:27.759 --> 00:04:30.519
<v Speaker 1>Without even without directly accessing.

112
00:04:30.000 --> 00:04:31.560
<v Speaker 2>It, directly accessing memory.

113
00:04:31.639 --> 00:04:34.240
<v Speaker 1>Yeah, you're just watching. It's just like you're just watching

114
00:04:34.920 --> 00:04:36.560
<v Speaker 1>what's happening in this shared space.

115
00:04:36.639 --> 00:04:38.879
<v Speaker 2>You're watching the patterns of access.

116
00:04:38.600 --> 00:04:40.720
<v Speaker 1>Exactly and inferring information from that.

117
00:04:41.120 --> 00:04:42.920
<v Speaker 2>Yeah, that's so cool.

118
00:04:43.279 --> 00:04:45.040
<v Speaker 1>It is cool, but also kind of scary.

119
00:04:45.120 --> 00:04:46.920
<v Speaker 2>Well, yeah, a little bit scary because.

120
00:04:46.720 --> 00:04:50.360
<v Speaker 1>It means that our systems are leaking information in ways

121
00:04:50.399 --> 00:04:52.079
<v Speaker 1>that you don't even realize.

122
00:04:52.319 --> 00:04:55.839
<v Speaker 2>Yeah, and that it's not just about like securing the

123
00:04:55.959 --> 00:04:58.079
<v Speaker 2>memory itself. It's about securing.

124
00:04:57.720 --> 00:05:01.839
<v Speaker 1>Like goal systems, way everything interacts, weigh everything in act,

125
00:05:02.240 --> 00:05:04.959
<v Speaker 1>timing the patterns, all that stuff. That's right, Okay, it's

126
00:05:04.959 --> 00:05:06.120
<v Speaker 1>a whole new level of security.

127
00:05:06.160 --> 00:05:09.040
<v Speaker 2>All right. So now we're gonna jump way back in time,

128
00:05:09.160 --> 00:05:12.600
<v Speaker 2>way back to the retro days, the retro days of

129
00:05:12.839 --> 00:05:13.439
<v Speaker 2>the Apple two.

130
00:05:13.800 --> 00:05:18.759
<v Speaker 1>Ah, the Apple two classic classic, legendary machine.

131
00:05:18.480 --> 00:05:22.199
<v Speaker 2>Legendary machine. And we have a story here about a

132
00:05:22.240 --> 00:05:27.560
<v Speaker 2>group of uh, some dedicated hackers, hackers that wanted to

133
00:05:27.680 --> 00:05:29.360
<v Speaker 2>crack a particular game.

134
00:05:30.040 --> 00:05:32.959
<v Speaker 1>They did. They wanted to play it for free, gumble Gumball,

135
00:05:33.240 --> 00:05:34.279
<v Speaker 1>a classic game.

136
00:05:34.439 --> 00:05:38.160
<v Speaker 2>It was not easy, it was those days.

137
00:05:39.079 --> 00:05:41.399
<v Speaker 1>Yeah, they didn't have the tools and the Internet that

138
00:05:41.439 --> 00:05:42.120
<v Speaker 1>we have today.

139
00:05:42.920 --> 00:05:45.439
<v Speaker 2>Right, they couldn't just they couldn't just google how to

140
00:05:45.480 --> 00:05:46.360
<v Speaker 2>do it? Google it?

141
00:05:46.480 --> 00:05:46.600
<v Speaker 1>Yea.

142
00:05:47.199 --> 00:05:49.199
<v Speaker 2>So they had figured out themselves.

143
00:05:49.360 --> 00:05:51.959
<v Speaker 1>So what made Gumball so hard?

144
00:05:52.680 --> 00:05:56.000
<v Speaker 2>Well, the Apple two itself was a limited machine, had

145
00:05:56.040 --> 00:05:59.720
<v Speaker 2>a very simple processor, not a lot of memory, right,

146
00:06:00.040 --> 00:06:02.079
<v Speaker 2>so you have to be really clever to do anything

147
00:06:02.079 --> 00:06:02.920
<v Speaker 2>interesting with it.

148
00:06:03.160 --> 00:06:07.120
<v Speaker 1>So they had to really understand the system. Oh yeah,

149
00:06:07.160 --> 00:06:08.360
<v Speaker 1>at a very low level.

150
00:06:08.399 --> 00:06:10.639
<v Speaker 2>Intimately, you had to know it inside and out.

151
00:06:11.000 --> 00:06:14.360
<v Speaker 1>So these two researchers, yeah, for Aim and Peter Ferry

152
00:06:14.560 --> 00:06:18.519
<v Speaker 1>legends really just kind of like, yeah, painstakingly went through

153
00:06:18.519 --> 00:06:19.199
<v Speaker 1>the code.

154
00:06:19.120 --> 00:06:21.879
<v Speaker 2>Line by line, Yeah, trying to figure out how the

155
00:06:21.920 --> 00:06:24.480
<v Speaker 2>protection worked. Yeah, they had to kind of learn the

156
00:06:24.560 --> 00:06:27.439
<v Speaker 2>secret language of the game, the game's secret link.

157
00:06:27.639 --> 00:06:30.040
<v Speaker 1>Yeah, it's like being a code breaker, you know, exactly

158
00:06:30.199 --> 00:06:32.480
<v Speaker 1>back in the war. It's that kind of You've got

159
00:06:32.959 --> 00:06:35.800
<v Speaker 1>this encrypted message, you've got to figure out the key.

160
00:06:35.680 --> 00:06:37.360
<v Speaker 2>You've got to figure out the cipher, you've.

161
00:06:37.199 --> 00:06:39.120
<v Speaker 1>Got to crack the code. And what they did, what

162
00:06:39.160 --> 00:06:40.680
<v Speaker 1>it was doing, it's amazing.

163
00:06:40.839 --> 00:06:41.800
<v Speaker 2>Yeah, that's pretty cool.

164
00:06:41.879 --> 00:06:42.439
<v Speaker 1>It is cool.

165
00:06:42.639 --> 00:06:45.560
<v Speaker 2>So I guess the.

166
00:06:45.680 --> 00:06:47.639
<v Speaker 1>So why is the story important today?

167
00:06:47.920 --> 00:06:50.160
<v Speaker 2>Yeah? So why is this important. You know, why should

168
00:06:50.199 --> 00:06:53.759
<v Speaker 2>we care about you know, why does this matter to us?

169
00:06:53.800 --> 00:06:58.319
<v Speaker 2>Some retro hackers cracking this old game on this old system.

170
00:06:58.519 --> 00:07:01.360
<v Speaker 1>For one thing, it shows that the spirit of hacking

171
00:07:01.800 --> 00:07:04.079
<v Speaker 1>has been around for a long time. It's not it's

172
00:07:04.079 --> 00:07:07.360
<v Speaker 1>not a new thing. It's not like kids these days

173
00:07:07.399 --> 00:07:10.319
<v Speaker 1>with their computers, right, this has been going on since

174
00:07:10.360 --> 00:07:11.240
<v Speaker 1>the dawn of computing.

175
00:07:11.319 --> 00:07:15.720
<v Speaker 2>This is like a fundamental human desire. It's about curiosity

176
00:07:15.759 --> 00:07:18.519
<v Speaker 2>to figure out how things.

177
00:07:17.920 --> 00:07:20.120
<v Speaker 1>Pushing the limits of what's possible.

178
00:07:20.199 --> 00:07:23.240
<v Speaker 2>And then I think also it shows that even seemingly

179
00:07:23.560 --> 00:07:25.800
<v Speaker 2>simple systems can have.

180
00:07:26.040 --> 00:07:28.279
<v Speaker 1>Like the Apple, it seems simple, you can have these

181
00:07:28.319 --> 00:07:29.160
<v Speaker 1>like hidden but.

182
00:07:29.199 --> 00:07:32.240
<v Speaker 2>Under the hood, there's a lot of complexity, complexities in that,

183
00:07:32.279 --> 00:07:35.319
<v Speaker 2>and if you're willing to dig deep, you can find

184
00:07:35.439 --> 00:07:36.759
<v Speaker 2>really interesting stuff.

185
00:07:37.000 --> 00:07:39.920
<v Speaker 1>You can find those and exploit them exactly.

186
00:07:40.000 --> 00:07:42.600
<v Speaker 2>So it's kind of a it's inspiring. It's inspiring, it

187
00:07:42.639 --> 00:07:45.639
<v Speaker 2>is it is. Yeah, okay, all right, so let's move

188
00:07:45.639 --> 00:07:47.680
<v Speaker 2>on to something a little more modern. All right, So

189
00:07:47.720 --> 00:07:49.360
<v Speaker 2>let's move on to something a little more modern, little

190
00:07:49.360 --> 00:07:49.839
<v Speaker 2>more high tech.

191
00:07:50.000 --> 00:07:52.360
<v Speaker 1>And this is an interesting technique.

192
00:07:52.519 --> 00:07:54.000
<v Speaker 2>Yeah, this is one of my favorites.

193
00:07:54.040 --> 00:07:55.759
<v Speaker 1>Actually, Zero copy networking.

194
00:07:55.879 --> 00:07:59.800
<v Speaker 2>Yeah, zero copy networking. So what is it's all about?

195
00:08:00.839 --> 00:08:02.000
<v Speaker 1>Zero copy networking.

196
00:08:02.120 --> 00:08:04.800
<v Speaker 2>Yeah, efficiency, getting the most out of your hardware.

197
00:08:05.519 --> 00:08:09.199
<v Speaker 1>It's kind of like in the realm of high performance, high.

198
00:08:09.040 --> 00:08:12.399
<v Speaker 2>Performance computing, real time systems.

199
00:08:12.600 --> 00:08:16.279
<v Speaker 1>Yeah, anything where latency matters, millisecond counts.

200
00:08:16.399 --> 00:08:18.040
<v Speaker 2>Yeah, this is where zero copy comes in.

201
00:08:18.480 --> 00:08:22.120
<v Speaker 1>Yeah, because traditional networking involves a lot of copying data.

202
00:08:22.560 --> 00:08:26.040
<v Speaker 2>Yeah. So the problem that it solves is that normally

203
00:08:26.040 --> 00:08:28.759
<v Speaker 2>when you send data over a network, right, there's a

204
00:08:28.800 --> 00:08:30.560
<v Speaker 2>lot of copying that happened.

205
00:08:30.319 --> 00:08:32.200
<v Speaker 1>From the CPU to the kernel, from.

206
00:08:32.120 --> 00:08:33.240
<v Speaker 2>The CPU to the CURL, the.

207
00:08:33.240 --> 00:08:35.840
<v Speaker 1>Kernel to the network card, the network call, all these

208
00:08:35.840 --> 00:08:40.120
<v Speaker 1>different buffers and all that copying takes time.

209
00:08:40.360 --> 00:08:44.440
<v Speaker 2>It takes time, it consumes CPU cycles, and it uses resource.

210
00:08:44.519 --> 00:08:47.799
<v Speaker 1>It slows things down. So zero copy networking.

211
00:08:48.279 --> 00:08:50.879
<v Speaker 2>So the idea is, can we just skip all that?

212
00:08:51.320 --> 00:08:54.440
<v Speaker 1>Can we just cut out the middle man the middle man?

213
00:08:54.639 --> 00:08:59.080
<v Speaker 1>Let the data flow directly from the application memory straight

214
00:08:59.120 --> 00:09:02.039
<v Speaker 1>from point A to point B to the network card. Yeah,

215
00:09:02.120 --> 00:09:04.440
<v Speaker 1>without all those extra stops along the way.

216
00:09:05.200 --> 00:09:07.159
<v Speaker 2>So how do they actually how do they do that?

217
00:09:07.240 --> 00:09:07.519
<v Speaker 2>Do that?

218
00:09:08.200 --> 00:09:11.840
<v Speaker 1>Well? It involves a few tricks. Yeah, One is using

219
00:09:11.879 --> 00:09:12.879
<v Speaker 1>something called DMA.

220
00:09:13.919 --> 00:09:16.039
<v Speaker 2>DMA direct memory access.

221
00:09:15.720 --> 00:09:18.840
<v Speaker 1>Direct memory access yeah, which allows the network card to

222
00:09:18.960 --> 00:09:22.759
<v Speaker 1>access memory right directly without going through the CPU.

223
00:09:22.519 --> 00:09:25.600
<v Speaker 2>So the CPU can be doing other things exactly.

224
00:09:25.639 --> 00:09:28.279
<v Speaker 1>The CPU is like, hey, network card, you handle this,

225
00:09:28.360 --> 00:09:28.919
<v Speaker 1>You handle this.

226
00:09:28.960 --> 00:09:31.240
<v Speaker 2>I'm busy, I've got other things to do. I'm playing

227
00:09:31.240 --> 00:09:32.200
<v Speaker 2>a game over here.

228
00:09:32.120 --> 00:09:33.279
<v Speaker 1>I'm rendering this video.

229
00:09:33.679 --> 00:09:38.399
<v Speaker 2>Don't bother me. So DMA is one part of it, right.

230
00:09:38.600 --> 00:09:44.240
<v Speaker 2>Another part is using specialized drivers okay, like PFR im PFR,

231
00:09:44.799 --> 00:09:49.399
<v Speaker 2>which are designed specifically for high performance networking. They bypass

232
00:09:49.440 --> 00:09:51.320
<v Speaker 2>a lot of the traditional networking stacks.

233
00:09:51.039 --> 00:09:53.120
<v Speaker 1>So they cut out all all.

234
00:09:52.879 --> 00:09:55.720
<v Speaker 2>The layers, the bureaucracy of the networking.

235
00:09:55.320 --> 00:09:57.200
<v Speaker 1>Stack, the unnecessary red tape.

236
00:09:57.320 --> 00:09:59.919
<v Speaker 2>Exactly, just get the data where it needs to go.

237
00:10:00.120 --> 00:10:02.480
<v Speaker 2>Just get the data there as fast as possible. That's

238
00:10:02.519 --> 00:10:02.879
<v Speaker 2>the goal.

239
00:10:03.799 --> 00:10:07.440
<v Speaker 1>So what kind of applications would this be really useful for?

240
00:10:07.639 --> 00:10:10.200
<v Speaker 2>Oh, so many things, so many things. Think about like

241
00:10:10.360 --> 00:10:15.039
<v Speaker 2>high frequency trading where microseconds matter, milliseconds matter. If you

242
00:10:15.039 --> 00:10:18.279
<v Speaker 2>can shave off right, if you can get you're trade in,

243
00:10:18.480 --> 00:10:20.320
<v Speaker 2>you can make a lot of money a few milliseconds

244
00:10:20.360 --> 00:10:21.159
<v Speaker 2>before the other guy.

245
00:10:21.320 --> 00:10:24.879
<v Speaker 1>Real time streaming. You don't want your video to lag.

246
00:10:24.879 --> 00:10:27.600
<v Speaker 2>Yeah, you don't want You want it to be smooth buffering.

247
00:10:27.759 --> 00:10:33.879
<v Speaker 1>Yeah, so any application gaming aiming where you need that

248
00:10:34.000 --> 00:10:35.320
<v Speaker 1>low latency.

249
00:10:34.919 --> 00:10:37.679
<v Speaker 2>Where low latency is critical. So this is kind of

250
00:10:37.720 --> 00:10:40.440
<v Speaker 2>like zero copy networking can really.

251
00:10:40.200 --> 00:10:41.559
<v Speaker 1>Make a difference under the hood.

252
00:10:41.720 --> 00:10:44.519
<v Speaker 2>It's the secret sauce, secret sauce that makes things fast.

253
00:10:44.679 --> 00:10:47.720
<v Speaker 1>Yeah, that you don't see, but it's there, work in

254
00:10:47.759 --> 00:10:48.279
<v Speaker 1>its magic.

255
00:10:48.360 --> 00:10:50.320
<v Speaker 2>It's working hard behind the scenes.

256
00:10:50.440 --> 00:10:51.159
<v Speaker 1>That's cool.

257
00:10:51.279 --> 00:10:53.759
<v Speaker 2>Yeah. Okay, so all right, what's next?

258
00:10:53.879 --> 00:10:54.440
<v Speaker 1>What's next?

259
00:10:54.519 --> 00:10:56.799
<v Speaker 2>What other cool stuff do we have on our list

260
00:10:56.840 --> 00:10:57.360
<v Speaker 2>in this book?

261
00:10:57.360 --> 00:11:00.159
<v Speaker 1>All right, so this one is a hardware hack.

262
00:11:00.159 --> 00:11:03.840
<v Speaker 2>Oh, hardware hacking. This is called the I Love Hardware Hacking.

263
00:11:03.559 --> 00:11:06.360
<v Speaker 1>The ip flip Wixer trick.

264
00:11:06.320 --> 00:11:11.399
<v Speaker 2>D I p flip wixer trick. That's a mouthful, it is,

265
00:11:12.000 --> 00:11:13.240
<v Speaker 2>but it's a really cool trick.

266
00:11:13.559 --> 00:11:17.360
<v Speaker 1>It is a cool trick. Yeah, so uh what is it?

267
00:11:17.399 --> 00:11:18.240
<v Speaker 1>This is from Joe.

268
00:11:18.039 --> 00:11:22.279
<v Speaker 2>Grant, Joe grand the King of hardware hacking. Yeah, he's amazing.

269
00:11:22.360 --> 00:11:24.720
<v Speaker 1>So the idea is, how do you reprogram a device

270
00:11:25.080 --> 00:11:28.840
<v Speaker 1>without any special tools, without any special tools.

271
00:11:28.519 --> 00:11:31.320
<v Speaker 2>Without any special never hacking.

272
00:11:31.399 --> 00:11:34.120
<v Speaker 1>You know you've got You're stuck on a desert island.

273
00:11:34.799 --> 00:11:37.159
<v Speaker 1>All you've got is a paper clip and a piece

274
00:11:37.200 --> 00:11:40.600
<v Speaker 1>of chewing gum. Yeah, and you've got to reprogram.

275
00:11:40.000 --> 00:11:44.840
<v Speaker 2>This device shoelace, and somehow, somehow you do it reprogrammed.

276
00:11:44.919 --> 00:11:47.480
<v Speaker 2>That's Joe Gran he's the master of that.

277
00:11:47.559 --> 00:11:51.919
<v Speaker 1>So in this particular case, he is exploiting the the.

278
00:11:51.879 --> 00:11:54.720
<v Speaker 2>Ftd I chick, the FTDI chick, which is a very

279
00:11:54.759 --> 00:11:58.080
<v Speaker 2>common chip used for USB to serial communication.

280
00:11:58.279 --> 00:12:01.159
<v Speaker 1>Right, So if you've ever used like an Urduen or

281
00:12:01.200 --> 00:12:02.360
<v Speaker 1>a Raspberry.

282
00:12:01.919 --> 00:12:05.120
<v Speaker 2>Pie or any kind of embedded device, you've probably used

283
00:12:05.120 --> 00:12:09.399
<v Speaker 2>an FTDI chip. You've probably seen it. Yeah, these little chips,

284
00:12:09.519 --> 00:12:12.519
<v Speaker 2>they're everywhere. And so what he figured out is that

285
00:12:12.639 --> 00:12:13.720
<v Speaker 2>there's a way.

286
00:12:13.600 --> 00:12:16.919
<v Speaker 1>To uh reconfigure.

287
00:12:16.960 --> 00:12:20.080
<v Speaker 2>We can figure the gpio pins.

288
00:12:19.879 --> 00:12:21.960
<v Speaker 1>The gpo opins on the fly on the floor, which

289
00:12:21.960 --> 00:12:22.679
<v Speaker 1>is kind of unusual.

290
00:12:22.679 --> 00:12:25.159
<v Speaker 2>So gpio pins are basically like little.

291
00:12:24.879 --> 00:12:27.440
<v Speaker 1>Switches you can turn on and off, and they could

292
00:12:27.440 --> 00:12:28.519
<v Speaker 1>be used for all sorts of things.

293
00:12:28.600 --> 00:12:32.200
<v Speaker 2>Yeah, they can be used to control LEDs or motors

294
00:12:32.320 --> 00:12:35.799
<v Speaker 2>or sensors or whatever you want, all sorts of things.

295
00:12:35.840 --> 00:12:39.200
<v Speaker 2>And so he figured out a way to reconfigure.

296
00:12:38.360 --> 00:12:41.200
<v Speaker 1>Those to use those pins, to use those pins redirect

297
00:12:41.200 --> 00:12:42.919
<v Speaker 1>the cereal data to redirect.

298
00:12:42.519 --> 00:12:44.120
<v Speaker 2>The serial data. So instead of going to.

299
00:12:44.080 --> 00:12:47.360
<v Speaker 1>The normal to basically reprogram the chair the device.

300
00:12:47.600 --> 00:12:49.279
<v Speaker 2>It's going back to the FTDI.

301
00:12:48.919 --> 00:12:52.200
<v Speaker 1>Chip, the FTDI chip itself and reprogramming it, which is

302
00:12:52.240 --> 00:12:52.720
<v Speaker 1>so clever.

303
00:12:52.919 --> 00:12:56.519
<v Speaker 2>It is so clever. It's like using the device's own

304
00:12:56.559 --> 00:12:57.639
<v Speaker 2>defenses against it.

305
00:12:57.759 --> 00:13:00.759
<v Speaker 1>Yeah, it's like turning its own power against it, exactly.

306
00:13:01.279 --> 00:13:03.840
<v Speaker 1>And so, so how does he actually do this?

307
00:13:04.159 --> 00:13:08.600
<v Speaker 2>The way he does this is by using specific key strokes,

308
00:13:08.600 --> 00:13:14.279
<v Speaker 2>Like so, if you press the right combination of keys, it.

309
00:13:13.200 --> 00:13:14.240
<v Speaker 1>It triggers a mode switch.

310
00:13:14.279 --> 00:13:17.440
<v Speaker 2>It triggers this mode switch and FTDI chip. Yeah, and

311
00:13:17.480 --> 00:13:20.279
<v Speaker 2>then suddenly the serial data is and then suddenly the

312
00:13:20.360 --> 00:13:21.879
<v Speaker 2>serial data is going to.

313
00:13:22.000 --> 00:13:24.879
<v Speaker 1>The data is flowing in a different direction to the chip. Yeah,

314
00:13:24.960 --> 00:13:26.080
<v Speaker 1>you can reprogram it.

315
00:13:26.080 --> 00:13:26.919
<v Speaker 2>It's wild.

316
00:13:27.080 --> 00:13:28.919
<v Speaker 1>It is wild. It's like, so what does this It's

317
00:13:28.919 --> 00:13:31.720
<v Speaker 1>like a secret back door, yeah, into the chip.

318
00:13:31.879 --> 00:13:33.440
<v Speaker 2>So what's the takeaway here?

319
00:13:33.639 --> 00:13:34.759
<v Speaker 1>So what can we learn from this?

320
00:13:34.919 --> 00:13:35.840
<v Speaker 2>Why is this important?

321
00:13:35.960 --> 00:13:39.679
<v Speaker 1>Besides the coolness factor, besides being super cool?

322
00:13:39.759 --> 00:13:42.399
<v Speaker 2>I mean, it's just so cool, it's super cool. Yeah,

323
00:13:42.440 --> 00:13:45.519
<v Speaker 2>what's the practical lesson here? I think the lesson is

324
00:13:45.559 --> 00:13:48.480
<v Speaker 2>that I think it teaches us to think outside the box.

325
00:13:48.320 --> 00:13:51.679
<v Speaker 1>To think outside the box, and to not don't assume.

326
00:13:51.320 --> 00:13:53.000
<v Speaker 2>That you need specialized tools.

327
00:13:53.200 --> 00:13:56.279
<v Speaker 1>Assume that you need these to do amazing things especial

328
00:13:56.440 --> 00:13:58.840
<v Speaker 1>Sometimes the tools you need are right in front of you.

329
00:13:59.399 --> 00:14:00.720
<v Speaker 1>You just have to know how to use them.

330
00:14:00.759 --> 00:14:04.200
<v Speaker 2>Sometimes the things you have in a different way can

331
00:14:04.240 --> 00:14:08.120
<v Speaker 2>be used for something completely different than they were intended for.

332
00:14:08.279 --> 00:14:12.879
<v Speaker 1>It's about creativity, and that's about resourcefulness. It's about that

333
00:14:12.960 --> 00:14:16.639
<v Speaker 1>hacker spirit, the hackers, you know, finding a way even

334
00:14:16.639 --> 00:14:19.960
<v Speaker 1>when it seems impossible. Okay, okay, so one more, one more,

335
00:14:20.159 --> 00:14:21.759
<v Speaker 1>one more for this segment.

336
00:14:21.480 --> 00:14:23.679
<v Speaker 2>For this segment, and then we'll hit me with it.

337
00:14:23.720 --> 00:14:26.679
<v Speaker 2>We'll take a break. So this one is a little

338
00:14:26.720 --> 00:14:27.480
<v Speaker 2>bit more in the.

339
00:14:27.399 --> 00:14:28.720
<v Speaker 1>Weeds, a little more technical.

340
00:14:28.879 --> 00:14:32.480
<v Speaker 2>Yeah, okay, so this is about uh.

341
00:14:32.320 --> 00:14:34.360
<v Speaker 1>Static ELF relocations.

342
00:14:34.559 --> 00:14:37.159
<v Speaker 2>Static ELF relocations.

343
00:14:37.320 --> 00:14:41.360
<v Speaker 1>Wow, that's a mouthful, but it's an important concept.

344
00:14:41.039 --> 00:14:43.879
<v Speaker 2>The security implications, especially.

345
00:14:43.519 --> 00:14:47.559
<v Speaker 1>If you're working with like low level systems. Yeah, embedded systems.

346
00:14:48.320 --> 00:14:52.399
<v Speaker 2>ELF is the operating system kernels, executable and linkable format.

347
00:14:52.559 --> 00:14:55.879
<v Speaker 1>That's right. It's basically it's the standard format programs are

348
00:14:56.480 --> 00:14:58.159
<v Speaker 1>for executable files on.

349
00:14:58.240 --> 00:15:00.399
<v Speaker 2>Linux sort on Linux and any.

350
00:15:00.240 --> 00:15:03.039
<v Speaker 1>Other Unix like systems. Yeah, so it's pretty important.

351
00:15:03.159 --> 00:15:07.480
<v Speaker 2>And so when we talk about static ELF relocations we're

352
00:15:07.519 --> 00:15:13.240
<v Speaker 2>talking about. UH. A statically linked binary.

353
00:15:12.879 --> 00:15:16.600
<v Speaker 1>Aesthetically linked binary is often seen is like a self

354
00:15:16.639 --> 00:15:20.600
<v Speaker 1>contained unit, more secure. It's got everything it needs than dynamically.

355
00:15:20.720 --> 00:15:22.559
<v Speaker 1>All the libraries are built.

356
00:15:22.320 --> 00:15:23.279
<v Speaker 2>In linked binary.

357
00:15:23.320 --> 00:15:26.000
<v Speaker 1>It's like a standalone program. You don't need anything else

358
00:15:26.000 --> 00:15:26.799
<v Speaker 1>to run it.

359
00:15:26.679 --> 00:15:31.120
<v Speaker 2>Because it's self contained. What this research show there's.

360
00:15:30.879 --> 00:15:33.799
<v Speaker 1>A catch is that even there's always a catch, statically

361
00:15:33.879 --> 00:15:37.559
<v Speaker 1>linked binaries can still have there's no such thing as perfect.

362
00:15:37.320 --> 00:15:43.559
<v Speaker 2>Security vulnerabilities relating to these relocations static binaries. The idea

363
00:15:43.600 --> 00:15:45.159
<v Speaker 2>is even though there's statically.

364
00:15:44.840 --> 00:15:49.159
<v Speaker 1>Linked, even though they still contain relocation tables, which are

365
00:15:49.200 --> 00:15:52.679
<v Speaker 1>basically instructions for how to load the different parts of

366
00:15:52.720 --> 00:15:57.200
<v Speaker 1>the program into memory at run time. So even though

367
00:15:57.240 --> 00:16:00.639
<v Speaker 1>the libraries are statically linked, there's still this there's still

368
00:16:00.639 --> 00:16:05.879
<v Speaker 1>this table of information this function needs to be loaded

369
00:16:06.320 --> 00:16:09.399
<v Speaker 1>at this address. Assumption this data needs to be loaded

370
00:16:09.399 --> 00:16:10.600
<v Speaker 1>at this address.

371
00:16:10.320 --> 00:16:13.000
<v Speaker 2>Is here, and so on, this data is here.

372
00:16:12.879 --> 00:16:16.919
<v Speaker 1>And attackers can exploit and an attacker those relocation tables

373
00:16:17.480 --> 00:16:21.120
<v Speaker 1>to do nasty things like shared library injection.

374
00:16:21.320 --> 00:16:22.960
<v Speaker 2>Shared library inject.

375
00:16:22.639 --> 00:16:24.960
<v Speaker 1>Which is a classic attack which is basically where you

376
00:16:25.080 --> 00:16:30.279
<v Speaker 1>trick the program, picking the program into loading a malicious

377
00:16:30.519 --> 00:16:34.519
<v Speaker 1>library loading your code instead of the legitimate one, and

378
00:16:34.559 --> 00:16:36.480
<v Speaker 1>then your code gets executed.

379
00:16:36.679 --> 00:16:37.720
<v Speaker 2>So that's crazy.

380
00:16:37.879 --> 00:16:39.120
<v Speaker 1>It is crazy.

381
00:16:38.799 --> 00:16:41.840
<v Speaker 2>Because you think it's like, okay, you think you're saying

382
00:16:41.879 --> 00:16:43.200
<v Speaker 2>statically linked.

383
00:16:42.919 --> 00:16:46.440
<v Speaker 1>Because you've got this statically linked binary self contained, but

384
00:16:47.000 --> 00:16:51.200
<v Speaker 1>there's still these subtle ways that attackers can get in

385
00:16:52.360 --> 00:16:53.360
<v Speaker 1>and mess things up.

386
00:16:53.559 --> 00:16:55.080
<v Speaker 2>Yeah, that's so cool.

387
00:16:55.240 --> 00:16:56.799
<v Speaker 1>It is cool, and it's a good reminders.

388
00:16:56.840 --> 00:17:00.240
<v Speaker 2>But what does this tell us that security is hard?

389
00:17:00.320 --> 00:17:00.759
<v Speaker 2>In general?

390
00:17:00.840 --> 00:17:04.759
<v Speaker 1>Security is never easy, and it's not about you can't

391
00:17:04.799 --> 00:17:08.559
<v Speaker 1>just rely on building the wall or one assumption.

392
00:17:08.880 --> 00:17:13.000
<v Speaker 2>You have to understand the system deeply and you have

393
00:17:13.079 --> 00:17:16.480
<v Speaker 2>to be constantly deep looking for new ways.

394
00:17:17.200 --> 00:17:20.000
<v Speaker 1>Yeah. Attacks, it's like try to get in never ending

395
00:17:20.279 --> 00:17:22.720
<v Speaker 1>is a never ending battle arms race, the arms race

396
00:17:22.759 --> 00:17:23.440
<v Speaker 1>of security.

397
00:17:23.400 --> 00:17:25.359
<v Speaker 2>Yeah, okay, all right.

398
00:17:25.240 --> 00:17:27.640
<v Speaker 1>So that's it for this segment. So we've covered We've

399
00:17:27.640 --> 00:17:30.200
<v Speaker 1>covered a lot of grounds quite a bit, from hacking

400
00:17:30.319 --> 00:17:35.839
<v Speaker 1>children's toys to cracking retro games to exploiting the intricacies

401
00:17:35.880 --> 00:17:41.039
<v Speaker 1>of modern CPU's children's toys. It's been a wild ride.

402
00:17:40.880 --> 00:17:42.599
<v Speaker 2>Cracking retro games.

403
00:17:42.680 --> 00:17:46.400
<v Speaker 1>We're gonna take a quick break the deep dark, but

404
00:17:46.559 --> 00:17:48.000
<v Speaker 1>drink stretch.

405
00:17:47.680 --> 00:17:49.599
<v Speaker 2>Your lads to static binaries and.

406
00:17:49.519 --> 00:17:55.200
<v Speaker 1>We'll be back with more amazing stuff from PAC or

407
00:17:55.240 --> 00:17:56.680
<v Speaker 1>GTFO Volume three.

408
00:17:56.799 --> 00:17:57.680
<v Speaker 2>We'll be right back.

409
00:17:58.039 --> 00:18:01.119
<v Speaker 1>Stay curious, Welcome back to the deep dive.

410
00:18:01.200 --> 00:18:03.599
<v Speaker 2>All right, so we are back back into.

411
00:18:03.400 --> 00:18:06.599
<v Speaker 1>The depths of PFEE or GTFO with.

412
00:18:06.920 --> 00:18:10.160
<v Speaker 2>PAC or GTFO Volume three, Volume three. That's right, and

413
00:18:10.240 --> 00:18:13.799
<v Speaker 2>we're gonna jump right into the next. Uh okay, hacker,

414
00:18:14.200 --> 00:18:16.680
<v Speaker 2>what do we have? Interesting concept that we found.

415
00:18:16.400 --> 00:18:17.799
<v Speaker 1>In what's next on the menu?

416
00:18:18.400 --> 00:18:21.599
<v Speaker 2>So this one is kind of a technique. Okay, it's

417
00:18:21.599 --> 00:18:22.400
<v Speaker 2>not really a hack.

418
00:18:22.440 --> 00:18:24.000
<v Speaker 1>I guess it's a defensive technique.

419
00:18:24.039 --> 00:18:28.000
<v Speaker 2>Yeah, it's a defensive technique called anti keylogging with noise.

420
00:18:28.400 --> 00:18:30.640
<v Speaker 2>And this is from a researcher named Mike Myers.

421
00:18:30.680 --> 00:18:34.079
<v Speaker 1>Mike Myers, Yeah he's a clever guy. So, uh, I

422
00:18:34.079 --> 00:18:37.200
<v Speaker 1>guess first off, like, yeah, what's a keylogger is? Basically,

423
00:18:37.920 --> 00:18:41.079
<v Speaker 1>it's a piece of software against it that sits on

424
00:18:41.160 --> 00:18:45.480
<v Speaker 1>your computer yea, and it records every keystroke you make. Yeah,

425
00:18:45.519 --> 00:18:49.039
<v Speaker 1>so everything you type, everything you type, your passwords, yeah,

426
00:18:49.119 --> 00:18:52.359
<v Speaker 1>your credit card numbers, yeah, all your separate love letters,

427
00:18:52.400 --> 00:18:55.799
<v Speaker 1>your deep dark secret it's all being recorded.

428
00:18:56.039 --> 00:19:00.359
<v Speaker 2>So it's basically like why this keylogger a digital spot.

429
00:19:00.200 --> 00:19:03.359
<v Speaker 1>It's a digital spy that's sitting on your shoulder.

430
00:19:03.160 --> 00:19:05.960
<v Speaker 2>And it's scary because watching everything you do, you don't

431
00:19:06.000 --> 00:19:07.000
<v Speaker 2>know what's there.

432
00:19:07.000 --> 00:19:08.160
<v Speaker 1>Right, you don't know it's there.

433
00:19:08.200 --> 00:19:09.640
<v Speaker 2>It's running silently in.

434
00:19:09.599 --> 00:19:12.440
<v Speaker 1>The background, siphoning off your data. So how do you

435
00:19:12.480 --> 00:19:13.480
<v Speaker 1>defend against that?

436
00:19:13.920 --> 00:19:17.599
<v Speaker 2>So how do you tough problem defend against something like that,

437
00:19:17.680 --> 00:19:20.279
<v Speaker 2>because it's just Mike Myers came up with this idea

438
00:19:20.519 --> 00:19:21.480
<v Speaker 2>sitting there of.

439
00:19:21.519 --> 00:19:23.640
<v Speaker 1>Using noise to drown out the signal.

440
00:19:23.720 --> 00:19:25.599
<v Speaker 2>So the idea is to flood.

441
00:19:25.559 --> 00:19:30.839
<v Speaker 1>Instead of trying to prevent the keylogger from recording your keystrokes.

442
00:19:30.880 --> 00:19:32.240
<v Speaker 2>The keylogger was so much do you.

443
00:19:32.160 --> 00:19:36.000
<v Speaker 1>Just overwhelm it with so much, so much garbage that

444
00:19:36.079 --> 00:19:39.160
<v Speaker 1>it can't tell that it can't the real key strike,

445
00:19:39.279 --> 00:19:43.000
<v Speaker 1>extinguish the real from the fig So it's like, so

446
00:19:43.039 --> 00:19:47.720
<v Speaker 1>it's like creating a smoke screen to hide your real movement.

447
00:19:47.599 --> 00:19:51.319
<v Speaker 2>Like a digital a digital smoke screen, folk screen.

448
00:19:51.519 --> 00:19:54.079
<v Speaker 1>That's a great analogy. So how do you do that?

449
00:19:54.839 --> 00:19:56.400
<v Speaker 1>How do you generate this noise?

450
00:19:56.440 --> 00:19:58.000
<v Speaker 2>Generate that noise?

451
00:19:58.279 --> 00:20:02.880
<v Speaker 1>That's the tricky part. Can't be too random because then

452
00:20:03.160 --> 00:20:06.359
<v Speaker 1>because then it's obvious, it'll be obvious that it's fake. Right,

453
00:20:06.480 --> 00:20:09.720
<v Speaker 1>it's like somebody just banging on the keyboard. Yeah, it

454
00:20:09.799 --> 00:20:11.000
<v Speaker 1>has to be believable.

455
00:20:11.160 --> 00:20:14.079
<v Speaker 2>It has to sounds to sound like someone is actually

456
00:20:14.160 --> 00:20:15.480
<v Speaker 2>typing even though it's not.

457
00:20:15.640 --> 00:20:18.240
<v Speaker 1>Yeah, so you have to consider things like typing speed,

458
00:20:19.119 --> 00:20:22.160
<v Speaker 1>use of the shift keys, the frequency of different letters,

459
00:20:22.200 --> 00:20:23.000
<v Speaker 1>and all that stuff.

460
00:20:23.039 --> 00:20:24.599
<v Speaker 2>It's like you're trying to trying to.

461
00:20:24.519 --> 00:20:30.119
<v Speaker 1>Mimic human behavior, behavior, but without actually being human. It's

462
00:20:30.160 --> 00:20:32.079
<v Speaker 1>all an illusion. So it's a really So it's like.

463
00:20:32.079 --> 00:20:34.920
<v Speaker 2>You're creating a it's a challenge digital puppet.

464
00:20:35.039 --> 00:20:38.640
<v Speaker 1>It's a challenge to create this believable noise. It's just

465
00:20:38.799 --> 00:20:40.000
<v Speaker 1>typing gibberish.

466
00:20:40.880 --> 00:20:45.519
<v Speaker 2>But it's effective if you can do it right. So

467
00:20:45.640 --> 00:20:47.160
<v Speaker 2>I guess, So, what's the lesson here?

468
00:20:47.440 --> 00:20:47.680
<v Speaker 1>Was this?

469
00:20:47.799 --> 00:20:48.759
<v Speaker 2>What can we learn.

470
00:20:48.599 --> 00:20:50.559
<v Speaker 1>From this tell us about security in general?

471
00:20:50.680 --> 00:20:54.160
<v Speaker 2>I think it highlights the concept of obfuscation. Obfuscation which

472
00:20:54.240 --> 00:20:59.160
<v Speaker 2>is basically making things harder to understand, even if you

473
00:20:59.200 --> 00:21:00.640
<v Speaker 2>can't completely hide.

474
00:21:00.359 --> 00:21:02.960
<v Speaker 1>Them, try to prevent the attack.

475
00:21:03.400 --> 00:21:04.839
<v Speaker 2>Sometimes the best defense.

476
00:21:04.480 --> 00:21:07.599
<v Speaker 1>They're just trying is to just make it so difficult,

477
00:21:08.079 --> 00:21:10.759
<v Speaker 1>make it harder for the attacker that they give.

478
00:21:10.640 --> 00:21:12.960
<v Speaker 2>Up to get what they want. So it's kind of.

479
00:21:13.160 --> 00:21:15.640
<v Speaker 1>Like hiding a needle in a haystack, like hiding a needle.

480
00:21:16.319 --> 00:21:19.279
<v Speaker 1>Make the haystack so big that nobody can find the

481
00:21:19.319 --> 00:21:19.920
<v Speaker 1>needle that.

482
00:21:19.880 --> 00:21:22.680
<v Speaker 2>It's just not worth the effort to try to find it.

483
00:21:22.720 --> 00:21:23.680
<v Speaker 1>So that's obfuscation.

484
00:21:23.799 --> 00:21:26.400
<v Speaker 2>Okay, cool, all right, all right, so what else we got?

485
00:21:26.920 --> 00:21:30.000
<v Speaker 1>Moving on to something completely different?

486
00:21:30.119 --> 00:21:36.480
<v Speaker 2>Okay, this one is, uh, this sounds interesting. Ethernet over GDB,

487
00:21:37.039 --> 00:21:40.720
<v Speaker 2>Ethernet over GDB? What is that?

488
00:21:40.720 --> 00:21:44.599
<v Speaker 1>That sounds I'm intrigued, crazy.

489
00:21:44.319 --> 00:21:45.680
<v Speaker 2>Yeah, so break it down for me.

490
00:21:46.000 --> 00:21:47.480
<v Speaker 1>First off, what is GDB?

491
00:21:47.640 --> 00:21:52.319
<v Speaker 2>So? GDB is the gn you debugger. It's a tool

492
00:21:52.519 --> 00:21:57.559
<v Speaker 2>that programmers use to analyze code, debug to step through

493
00:21:57.640 --> 00:22:02.039
<v Speaker 2>code line by line, to inspect various to figure out

494
00:22:02.039 --> 00:22:03.720
<v Speaker 2>what's going wrong, what's going on?

495
00:22:03.880 --> 00:22:07.880
<v Speaker 1>So it's a very powerful tool for understanding how software works.

496
00:22:07.960 --> 00:22:11.200
<v Speaker 2>So you're telling me, so we can use Micah Elizabeth

497
00:22:11.240 --> 00:22:14.920
<v Speaker 2>Scott this debugging tool. It was a brilliant researcher.

498
00:22:14.599 --> 00:22:19.440
<v Speaker 1>To send data over figured out a way to use GDB.

499
00:22:20.119 --> 00:22:23.839
<v Speaker 2>How is that as a makeshift even pace?

500
00:22:23.960 --> 00:22:25.720
<v Speaker 1>How is that even possible?

501
00:22:25.799 --> 00:22:28.759
<v Speaker 2>It's mind blowing? Yeah, So basically, how did she do it?

502
00:22:29.000 --> 00:22:34.759
<v Speaker 2>She figured out how to use the GDB protocol Okay,

503
00:22:34.799 --> 00:22:38.599
<v Speaker 2>which is the language that GDD uses basically to communicate,

504
00:22:38.960 --> 00:22:44.319
<v Speaker 2>to send and receive protocol work packets. So it's like.

505
00:22:45.240 --> 00:22:50.160
<v Speaker 1>It's like speaking a wrench Ethernet using GDB through GDBA.

506
00:22:50.240 --> 00:22:53.920
<v Speaker 1>It's crazy, it's like using a wrench. But why in

507
00:22:53.960 --> 00:22:54.359
<v Speaker 1>a nail?

508
00:22:54.599 --> 00:22:56.039
<v Speaker 2>Why would you even.

509
00:22:55.799 --> 00:22:58.799
<v Speaker 1>You know it's not the right tool for the job, want.

510
00:22:58.640 --> 00:23:01.359
<v Speaker 2>To do this? But it worked, Yeah, if you know

511
00:23:01.519 --> 00:23:03.640
<v Speaker 2>how to use it, So why go through all that trouble?

512
00:23:04.000 --> 00:23:04.200
<v Speaker 1>Right?

513
00:23:04.359 --> 00:23:06.759
<v Speaker 2>Why bother to use GDD to send.

514
00:23:06.640 --> 00:23:09.839
<v Speaker 1>Imagine you're working on a tiny embedded system lacket like

515
00:23:09.880 --> 00:23:11.680
<v Speaker 1>the woods in your car, when you could.

516
00:23:11.480 --> 00:23:14.519
<v Speaker 2>Just use it for your smart appliances, an Ethernet cable that.

517
00:23:14.480 --> 00:23:16.559
<v Speaker 1>Doesn't have a built in network card.

518
00:23:16.680 --> 00:23:17.519
<v Speaker 2>Yeah right.

519
00:23:18.000 --> 00:23:20.480
<v Speaker 1>Traditionally you wouldn't be able to get network access to

520
00:23:20.640 --> 00:23:24.880
<v Speaker 1>that device because but with this technique, isn't you can't.

521
00:23:25.000 --> 00:23:27.880
<v Speaker 1>You can use GDB okay to basically give it a

522
00:23:28.000 --> 00:23:29.279
<v Speaker 1>voice on the network.

523
00:23:29.359 --> 00:23:32.480
<v Speaker 2>So it's like giving network giving a voice intivity.

524
00:23:32.720 --> 00:23:35.000
<v Speaker 1>To these devices that were previously.

525
00:23:34.519 --> 00:23:39.200
<v Speaker 2>Silent and these devices that were previously cut off. Next GAT, Yeah,

526
00:23:39.240 --> 00:23:40.759
<v Speaker 2>that's pretty cool. It's pretty cool.

527
00:23:40.839 --> 00:23:42.720
<v Speaker 1>So I guess the takeaway here is.

528
00:23:42.839 --> 00:23:46.480
<v Speaker 2>What's the lesson that you can use.

529
00:23:46.400 --> 00:23:48.279
<v Speaker 1>Tools in unexpected ways.

530
00:23:48.519 --> 00:23:53.880
<v Speaker 2>I think it teaches us that limitations can breed creativity.

531
00:23:54.240 --> 00:23:57.000
<v Speaker 1>Yeah right, Necessity is the mother.

532
00:23:57.359 --> 00:23:59.559
<v Speaker 2>Sometimes when you're faced of invention.

533
00:23:59.319 --> 00:24:03.640
<v Speaker 1>With a constraint, it forces you to think differently, to

534
00:24:03.759 --> 00:24:07.279
<v Speaker 1>find a new outside that you wouldn't have thought of otherwise.

535
00:24:07.680 --> 00:24:08.119
<v Speaker 2>The box.

536
00:24:08.279 --> 00:24:09.640
<v Speaker 1>So it's like those escape room puzzles.

537
00:24:09.680 --> 00:24:11.279
<v Speaker 2>Yeah, like an escape row where you have.

538
00:24:11.200 --> 00:24:16.880
<v Speaker 1>To use everyday objects unconventional ways. You've got to solve

539
00:24:16.920 --> 00:24:17.440
<v Speaker 1>the puzzle.

540
00:24:17.640 --> 00:24:20.680
<v Speaker 2>You've got this thing and you have to think.

541
00:24:20.480 --> 00:24:22.759
<v Speaker 1>Like it's like, okay, how can I how can I.

542
00:24:22.799 --> 00:24:23.400
<v Speaker 2>Use this thing?

543
00:24:23.640 --> 00:24:26.559
<v Speaker 1>Use this in a way it wasn't that was not intended,

544
00:24:26.720 --> 00:24:29.160
<v Speaker 1>intended to be used to achieve my goal.

545
00:24:29.279 --> 00:24:30.200
<v Speaker 2>Go achieve my goal.

546
00:24:30.319 --> 00:24:34.000
<v Speaker 1>And that's what Michael Elizabeth Scott did with this ethernet

547
00:24:34.079 --> 00:24:35.680
<v Speaker 1>over GDB hack.

548
00:24:35.839 --> 00:24:39.079
<v Speaker 2>That's cool. Yeah, okay, so all right, what's next?

549
00:24:39.079 --> 00:24:42.200
<v Speaker 1>Moving on? Hit me to another vulnerability.

550
00:24:42.240 --> 00:24:43.920
<v Speaker 2>Okay, another vulnerability.

551
00:24:44.000 --> 00:24:46.799
<v Speaker 1>This one is, uh, where are we going now? In

552
00:24:46.839 --> 00:24:48.000
<v Speaker 1>the Windows Control panel?

553
00:24:48.079 --> 00:24:51.279
<v Speaker 2>The Windows Control panel? That's right, okay, everyone's familiar with

554
00:24:51.319 --> 00:24:55.279
<v Speaker 2>that favorite thing. We've all used it to change our settings,

555
00:24:55.480 --> 00:24:57.000
<v Speaker 2>to customize our computers.

556
00:24:57.240 --> 00:25:00.759
<v Speaker 1>This vulnerability was discovered by a researcher right named Jeff

557
00:25:00.839 --> 00:25:06.880
<v Speaker 1>Cheppell Jeff, And what did he find? He was basically digging.

558
00:25:06.960 --> 00:25:10.720
<v Speaker 3>Indeed, he was looking into into how the how the

559
00:25:10.720 --> 00:25:15.200
<v Speaker 3>control panel handles Control panel CPL modules, which are basically

560
00:25:15.880 --> 00:25:20.440
<v Speaker 3>programs that add functionality to the control panel.

561
00:25:20.519 --> 00:25:23.720
<v Speaker 2>Okay, so they're like plugins. So it's like they extend

562
00:25:23.720 --> 00:25:25.240
<v Speaker 2>the functionality of the control.

563
00:25:25.000 --> 00:25:27.440
<v Speaker 1>Panel, the control panel. And what he found was he.

564
00:25:27.480 --> 00:25:31.960
<v Speaker 2>Found there's something subtle, subtle flaws in how these modules

565
00:25:31.960 --> 00:25:37.039
<v Speaker 2>to these modules are are loaded and executed, loaded, which

566
00:25:37.160 --> 00:25:41.880
<v Speaker 2>could potentially allow an attacker to run their.

567
00:25:41.759 --> 00:25:45.920
<v Speaker 1>Own code, some code and disguised as one of these modules.

568
00:25:45.920 --> 00:25:48.839
<v Speaker 2>So it's like you're sneaking in. It's like sneaking in

569
00:25:48.960 --> 00:25:51.319
<v Speaker 2>delicious code through the back door.

570
00:25:51.240 --> 00:25:53.000
<v Speaker 1>Disguised as a harmless plug in.

571
00:25:53.400 --> 00:25:56.039
<v Speaker 2>That's crazy, It's pretty sneaky.

572
00:25:55.680 --> 00:25:57.400
<v Speaker 1>So how is that even possible?

573
00:25:57.440 --> 00:25:59.279
<v Speaker 2>How is that even possible? How do you smell?

574
00:25:59.599 --> 00:26:02.799
<v Speaker 1>Comes down to the way that software interacts with the

575
00:26:02.839 --> 00:26:05.480
<v Speaker 1>operating system. So it's not just.

576
00:26:05.759 --> 00:26:10.480
<v Speaker 2>There are often a code itself, complex steps involved in

577
00:26:10.599 --> 00:26:14.400
<v Speaker 2>loading and running a program, how it interacts, and even

578
00:26:14.559 --> 00:26:19.799
<v Speaker 2>small errors in those steps can create opportunities for attackers.

579
00:26:20.400 --> 00:26:21.640
<v Speaker 2>So it's like a chain reaction.

580
00:26:21.880 --> 00:26:23.880
<v Speaker 1>Chain reaction one week link.

581
00:26:23.720 --> 00:26:26.319
<v Speaker 2>One week link can bring down the whole system.

582
00:26:26.000 --> 00:26:28.680
<v Speaker 1>Can break the whole thing. So what is this reason?

583
00:26:28.720 --> 00:26:30.759
<v Speaker 2>So what's the lesson here to us? What can we

584
00:26:30.880 --> 00:26:38.240
<v Speaker 2>learn from Jeff Chappel's work security? Yeah, I think it highlights.

585
00:26:37.519 --> 00:26:41.000
<v Speaker 1>What's the takeaway here the importance of secure coding practices.

586
00:26:41.319 --> 00:26:45.200
<v Speaker 1>So it's not just right you have to write good code,

587
00:26:45.759 --> 00:26:46.759
<v Speaker 1>but you also have.

588
00:26:46.680 --> 00:26:51.319
<v Speaker 2>To secure code carefully. Consider in time of a program

589
00:26:51.519 --> 00:26:52.640
<v Speaker 2>life cycle.

590
00:26:52.680 --> 00:26:56.039
<v Speaker 1>From the moment it's loaded to the moment it's executed.

591
00:26:56.440 --> 00:27:00.000
<v Speaker 1>More creatles, every step along the way has to be secure.

592
00:27:00.119 --> 00:27:03.079
<v Speaker 2>You've got to make sure otherwise there's a potential secure.

593
00:27:02.720 --> 00:27:06.359
<v Speaker 1>The entire way for vulnerability. So it's not just about

594
00:27:07.039 --> 00:27:07.880
<v Speaker 1>the code itself.

595
00:27:08.599 --> 00:27:10.039
<v Speaker 2>The whole systems is.

596
00:27:09.880 --> 00:27:12.039
<v Speaker 1>Being secure that the code runs in.

597
00:27:12.279 --> 00:27:15.519
<v Speaker 2>Yeah, that's yeah, it's a holistic view keep security.

598
00:27:15.599 --> 00:27:18.480
<v Speaker 1>It's not just about it's not just one one piece,

599
00:27:18.759 --> 00:27:20.400
<v Speaker 1>one thing, it's about the whole puzzle.

600
00:27:20.519 --> 00:27:25.000
<v Speaker 2>Yeah all right, Okay, what's next? So we're getting close

601
00:27:25.039 --> 00:27:25.839
<v Speaker 2>to the end here.

602
00:27:25.880 --> 00:27:29.160
<v Speaker 1>Moving on? What else do we have to something a

603
00:27:29.200 --> 00:27:32.720
<v Speaker 1>little bit more theoretical? Theoretical? I like theoretical.

604
00:27:32.880 --> 00:27:36.359
<v Speaker 2>I think it's still reletive. It's important to security. Yeah,

605
00:27:36.440 --> 00:27:37.599
<v Speaker 2>so this is about.

606
00:27:37.440 --> 00:27:38.000
<v Speaker 1>Hit me with it.

607
00:27:38.240 --> 00:27:44.119
<v Speaker 2>Hash function, hash function, kudo fixed points, fixed points. Wow,

608
00:27:44.559 --> 00:27:47.359
<v Speaker 2>that's a mouthful. That's a mouthful. All right, let's break

609
00:27:47.359 --> 00:27:47.920
<v Speaker 2>it down off.

610
00:27:48.000 --> 00:27:48.920
<v Speaker 1>What's a hash function?

611
00:27:49.559 --> 00:27:55.079
<v Speaker 2>So, a hash function is a fundamental building block of cryptography,

612
00:27:55.640 --> 00:27:58.920
<v Speaker 2>wire and security. So it's basically a function that takes

613
00:27:58.960 --> 00:28:03.759
<v Speaker 2>some input and produces they're everywhere a fixed size output

614
00:28:04.279 --> 00:28:07.240
<v Speaker 2>called a hash they're used for or a hash value,

615
00:28:07.720 --> 00:28:12.920
<v Speaker 2>everything from password storage. The key property the hash functional

616
00:28:12.960 --> 00:28:16.960
<v Speaker 2>signatures is that it's one way, meaning you can easily

617
00:28:17.000 --> 00:28:20.559
<v Speaker 2>calculate the hash of an but you can't.

618
00:28:20.880 --> 00:28:23.240
<v Speaker 1>It's very difficult to go backwards in other way to

619
00:28:23.279 --> 00:28:24.319
<v Speaker 1>find the input.

620
00:28:24.200 --> 00:28:26.640
<v Speaker 2>So and just the hash like a one way street.

621
00:28:27.039 --> 00:28:28.000
<v Speaker 1>It's a one way function.

622
00:28:28.880 --> 00:28:32.160
<v Speaker 2>So what does this have to do with pseudo fixed points?

623
00:28:32.200 --> 00:28:34.160
<v Speaker 2>Pseudo fixed points you keep talking about.

624
00:28:34.200 --> 00:28:39.160
<v Speaker 1>A pseudo fixed point is essentially a program that outputs

625
00:28:40.079 --> 00:28:41.559
<v Speaker 1>its own hash.

626
00:28:41.359 --> 00:28:42.880
<v Speaker 2>Value pseudo fixed points.

627
00:28:42.920 --> 00:28:46.200
<v Speaker 1>So it's a program that can calculate. So it's a

628
00:28:46.240 --> 00:28:51.359
<v Speaker 1>program its own fingerprint that spits out in a sense fingerprint.

629
00:28:51.440 --> 00:28:56.000
<v Speaker 2>That's pretty weird. Yeah right, how do you even do that?

630
00:28:56.440 --> 00:29:00.319
<v Speaker 1>Well, there are a couple of ways make a program.

631
00:29:00.519 --> 00:29:04.200
<v Speaker 1>One way is to use a technique to that called

632
00:29:04.319 --> 00:29:09.839
<v Speaker 1>quins quins Quinn's programs that can print their own source code.

633
00:29:10.119 --> 00:29:11.799
<v Speaker 2>Okay, so it's a program.

634
00:29:12.119 --> 00:29:15.880
<v Speaker 1>So it's like a snake that can swallow its own tail, print.

635
00:29:15.640 --> 00:29:19.119
<v Speaker 2>Out its own code. It's a self replicating program.

636
00:29:19.240 --> 00:29:20.559
<v Speaker 1>So it's like a program that can look.

637
00:29:20.680 --> 00:29:25.200
<v Speaker 2>You can use that technique create a hash functions pseudo

638
00:29:25.240 --> 00:29:28.640
<v Speaker 2>fixed point. This is me because if the program can

639
00:29:28.720 --> 00:29:32.680
<v Speaker 2>print its own source code, it can also calculate its

640
00:29:32.720 --> 00:29:38.400
<v Speaker 2>own hash and then output that hash as it's output.

641
00:29:39.200 --> 00:29:42.599
<v Speaker 2>So that's one way to create a pseudo fixed point.

642
00:29:42.640 --> 00:29:44.440
<v Speaker 2>The other way is to use why should we Care

643
00:29:44.559 --> 00:29:48.440
<v Speaker 2>fixed points, which is a more mathematical concept.

644
00:29:48.119 --> 00:29:49.400
<v Speaker 1>Which why should we care about?

645
00:29:49.519 --> 00:29:53.160
<v Speaker 2>But it's basically a program and hash function that could

646
00:29:53.160 --> 00:29:57.960
<v Speaker 2>be transformed pseudo fixed points into itself a series of operations,

647
00:29:58.200 --> 00:30:01.920
<v Speaker 2>implication program, it's this that's its.

648
00:30:01.720 --> 00:30:06.119
<v Speaker 1>Own it's tell us in a funhouse mirror about security.

649
00:30:06.319 --> 00:30:08.240
<v Speaker 2>Right, why is this a problem?

650
00:30:08.559 --> 00:30:12.200
<v Speaker 1>It's a little bit trippy, Yeah, but it seems very

651
00:30:12.319 --> 00:30:15.839
<v Speaker 1>It's a powerful technique and you can use it to

652
00:30:16.240 --> 00:30:20.240
<v Speaker 1>create these hash function practical pseudo fixed points.

653
00:30:20.279 --> 00:30:21.200
<v Speaker 2>Application here.

654
00:30:21.359 --> 00:30:23.640
<v Speaker 1>Yeah, so Why is this a vulnerability?

655
00:30:23.759 --> 00:30:27.240
<v Speaker 2>Why is this important for security? Yeah, well, can attacker.

656
00:30:26.880 --> 00:30:31.000
<v Speaker 1>Imagine an attacker wants to bypass a security mechanism that

657
00:30:31.119 --> 00:30:32.960
<v Speaker 1>relies on hash values, so.

658
00:30:33.000 --> 00:30:33.839
<v Speaker 2>He's using hashes.

659
00:30:33.839 --> 00:30:36.359
<v Speaker 1>So for example verify, Let's say you have a system

660
00:30:36.960 --> 00:30:39.079
<v Speaker 1>that uses hashes to verify that.

661
00:30:39.160 --> 00:30:42.200
<v Speaker 2>An attacker can create the integrity of files. One of

662
00:30:42.240 --> 00:30:47.240
<v Speaker 2>these programs that outputs you if you download a file hash,

663
00:30:47.279 --> 00:30:50.680
<v Speaker 2>you can calculate its hash. They can base and compare

664
00:30:50.680 --> 00:30:53.839
<v Speaker 2>it to the hash the system that was published by

665
00:30:53.880 --> 00:30:57.240
<v Speaker 2>the author of the file, and if the hashes.

666
00:30:56.960 --> 00:30:59.319
<v Speaker 1>Match malicious program you know.

667
00:30:59.480 --> 00:31:03.519
<v Speaker 2>Hasn't been tampered with legitimate, right, But so they're basically if.

668
00:31:03.480 --> 00:31:05.599
<v Speaker 1>An attacker can create a file.

669
00:31:05.519 --> 00:31:08.880
<v Speaker 2>Merging that has a digital fingerprint.

670
00:31:08.279 --> 00:31:11.680
<v Speaker 1>A specific hash, they can basically.

671
00:31:11.880 --> 00:31:14.920
<v Speaker 2>To bypass the security mechanisms.

672
00:31:14.960 --> 00:31:18.319
<v Speaker 1>So it's like creating a fake ID for a file.

673
00:31:18.480 --> 00:31:18.680
<v Speaker 2>Yeah.

674
00:31:18.759 --> 00:31:22.039
<v Speaker 1>So it's like, so it looks legitimate, we think we're safe,

675
00:31:22.160 --> 00:31:24.640
<v Speaker 1>even though it's not because we're using So that's why

676
00:31:24.640 --> 00:31:28.720
<v Speaker 1>these pseudo fixed points are dangerous. But because they allow

677
00:31:28.839 --> 00:31:36.519
<v Speaker 1>attackers to potentially bypass security mechanisms that rely on hash.

678
00:31:36.319 --> 00:31:39.079
<v Speaker 2>Values, that's mind blowing.

679
00:31:39.279 --> 00:31:42.319
<v Speaker 1>Yeah, it's a little bit mind bending, but it's important

680
00:31:42.319 --> 00:31:48.519
<v Speaker 1>to understand because it shows that even these fundamentals, cryptographic

681
00:31:48.640 --> 00:31:54.000
<v Speaker 1>techniques that has security, subtle weaknesses attackers can exploit.

682
00:31:54.039 --> 00:31:55.200
<v Speaker 2>There's some way.

683
00:31:55.119 --> 00:31:58.680
<v Speaker 4>Security is security constant arms. It's just a matter of

684
00:31:58.880 --> 00:32:02.079
<v Speaker 4>the attackers are all ways finding it, trying to find

685
00:32:02.079 --> 00:32:07.440
<v Speaker 4>new ways to break things, and the defenders always trying

686
00:32:07.480 --> 00:32:08.880
<v Speaker 4>to stay one step ahead.

687
00:32:09.279 --> 00:32:10.839
<v Speaker 1>Very cool, Yeah, it's exciting.

688
00:32:10.960 --> 00:32:11.880
<v Speaker 2>Yeah, to challenge.

689
00:32:11.960 --> 00:32:13.359
<v Speaker 1>Okay, keeps things interesting.

690
00:32:13.559 --> 00:32:16.440
<v Speaker 2>So moving on, all right, what else? We got something

691
00:32:16.480 --> 00:32:17.240
<v Speaker 2>a little more?

692
00:32:17.960 --> 00:32:19.119
<v Speaker 1>One more for this segment?

693
00:32:19.240 --> 00:32:19.480
<v Speaker 2>Fun?

694
00:32:19.599 --> 00:32:21.119
<v Speaker 1>Okay, fun hit me?

695
00:32:21.440 --> 00:32:25.920
<v Speaker 2>So this is project Okay.

696
00:32:26.319 --> 00:32:27.279
<v Speaker 1>Let's have some fun.

697
00:32:28.079 --> 00:32:31.319
<v Speaker 2>World video game video games. I love video games, the

698
00:32:31.440 --> 00:32:34.720
<v Speaker 2>technical intricacies. So what kind of video games shenanigans are

699
00:32:34.720 --> 00:32:38.240
<v Speaker 2>we talking about here? Of hash collisions, religions, and it's

700
00:32:38.240 --> 00:32:41.920
<v Speaker 2>called I like where this is going. MT five S

701
00:32:42.000 --> 00:32:45.240
<v Speaker 2>the MD five ne e S polyglot.

702
00:32:45.400 --> 00:32:47.039
<v Speaker 1>I know that sounds amazing.

703
00:32:48.279 --> 00:32:49.279
<v Speaker 2>Is that crazy?

704
00:32:49.519 --> 00:32:52.839
<v Speaker 1>Break it down for me? So what in the world?

705
00:32:52.960 --> 00:32:54.359
<v Speaker 2>What is a polyglot?

706
00:32:54.640 --> 00:32:56.759
<v Speaker 1>Is an MT five ne e S polyglot?

707
00:32:56.880 --> 00:33:00.119
<v Speaker 2>Well, in this context sounds like something alot is a

708
00:33:00.119 --> 00:33:04.680
<v Speaker 2>file doctor that is valid in multiple formats. So in

709
00:33:04.720 --> 00:33:08.279
<v Speaker 2>this case we have a file that is the file

710
00:33:08.640 --> 00:33:13.000
<v Speaker 2>valid e s RAM, which just that games are stored

711
00:33:13.000 --> 00:33:17.000
<v Speaker 2>in on the Nintendo Entertainment systems. And that's also a

712
00:33:17.079 --> 00:33:20.240
<v Speaker 2>valid PDF document, so you can open it up.

713
00:33:20.559 --> 00:33:26.240
<v Speaker 1>Host speaker, Welcome back everyone to the final part of

714
00:33:26.240 --> 00:33:32.279
<v Speaker 1>our deep Dive into Poscy or GTFO Volume three.

715
00:33:32.559 --> 00:33:35.039
<v Speaker 2>It's been quite a journey, it has been. We've seen

716
00:33:35.079 --> 00:33:40.480
<v Speaker 2>some amazing stuff we have, from hardware hacking to software exploitation.

717
00:33:40.680 --> 00:33:43.480
<v Speaker 1>Yeah, from the very low level to the very high level,

718
00:33:43.920 --> 00:33:44.759
<v Speaker 1>it's all connected.

719
00:33:44.880 --> 00:33:47.319
<v Speaker 2>Well, come step up with a few more a few

720
00:33:47.359 --> 00:33:51.400
<v Speaker 2>more gems from the book, interesting things, okay that we

721
00:33:51.480 --> 00:33:52.759
<v Speaker 2>found in the book. What do we got?

722
00:33:53.640 --> 00:34:00.240
<v Speaker 1>So? This first one is a a Kraken story game.

723
00:34:00.720 --> 00:34:03.640
<v Speaker 1>And this is a Sega Genesis.

724
00:34:03.160 --> 00:34:07.440
<v Speaker 2>Game, Oh Sega Genesis called Peer Solar and the Great

725
00:34:07.559 --> 00:34:09.440
<v Speaker 2>Architects Pure Solar.

726
00:34:09.599 --> 00:34:11.119
<v Speaker 1>I don't know if you've ever heard of this game.

727
00:34:11.239 --> 00:34:13.000
<v Speaker 2>I have heard of this game. It's a classic, a

728
00:34:13.079 --> 00:34:15.440
<v Speaker 2>homebrew RPG. Homebrew, that's right.

729
00:34:15.760 --> 00:34:16.480
<v Speaker 1>So it wasn't like that.

730
00:34:16.679 --> 00:34:19.920
<v Speaker 2>It wasn't like an official and officially re cress.

731
00:34:20.199 --> 00:34:22.639
<v Speaker 1>It was made by independent developers.

732
00:34:22.760 --> 00:34:26.159
<v Speaker 2>It was actually cool. We at least way after the Genesis,

733
00:34:26.159 --> 00:34:30.039
<v Speaker 2>way after the Genesis was even popular popular, so so

734
00:34:30.079 --> 00:34:31.639
<v Speaker 2>they were really pushing the limits.

735
00:34:31.800 --> 00:34:33.960
<v Speaker 1>They were really what the hardware could do, pushing the

736
00:34:34.000 --> 00:34:35.039
<v Speaker 1>limits of the hardware.

737
00:34:35.239 --> 00:34:37.159
<v Speaker 2>Yeah, and really impressive game.

738
00:34:37.400 --> 00:34:41.039
<v Speaker 1>The copy protection was a cracking itt tough, was no

739
00:34:41.159 --> 00:34:41.760
<v Speaker 1>easy feat.

740
00:34:41.960 --> 00:34:43.360
<v Speaker 2>So how did they do it?

741
00:34:43.440 --> 00:34:45.559
<v Speaker 1>How did they actually crack this?

742
00:34:45.800 --> 00:34:47.239
<v Speaker 2>Yeah? What were the challenging game?

743
00:34:47.719 --> 00:34:49.400
<v Speaker 1>Well, first of all, they had to figure out how to.

744
00:34:49.599 --> 00:34:52.199
<v Speaker 2>Yeah, how do you even get the code? Get the

745
00:34:52.239 --> 00:34:53.800
<v Speaker 2>code off a cartridge?

746
00:34:53.920 --> 00:34:55.159
<v Speaker 1>With the cartridge right, we're not.

747
00:34:55.119 --> 00:34:58.320
<v Speaker 2>Talking about like downloading a ROM file talking about from

748
00:34:58.360 --> 00:35:02.360
<v Speaker 2>the internet, the physical cartridge. This is a physical cartridge.

749
00:35:02.400 --> 00:35:04.440
<v Speaker 1>So they had to So you have to find a

750
00:35:04.480 --> 00:35:11.039
<v Speaker 1>way somehow to dump the ROM data from the cartridge

751
00:35:11.440 --> 00:35:11.920
<v Speaker 1>off of it.

752
00:35:12.000 --> 00:35:14.960
<v Speaker 2>Which is a challenge in itself, but they figured it out.

753
00:35:15.039 --> 00:35:15.960
<v Speaker 1>They were able to do that.

754
00:35:16.039 --> 00:35:18.440
<v Speaker 2>They did and then thanks and now they got the code.

755
00:35:18.519 --> 00:35:21.480
<v Speaker 2>They had a code. But then they had to actually

756
00:35:21.760 --> 00:35:24.079
<v Speaker 2>do you crack it? That's the secret it worked? Yeah,

757
00:35:24.239 --> 00:35:26.639
<v Speaker 2>so they had to so they had to dive in

758
00:35:26.679 --> 00:35:29.679
<v Speaker 2>this assembly can dive into the assembly code, the.

759
00:35:29.679 --> 00:35:33.400
<v Speaker 1>Ones and zero's the machine language, get it understand, trying

760
00:35:33.440 --> 00:35:35.719
<v Speaker 1>to figure out what it was doing, how.

761
00:35:35.559 --> 00:35:38.079
<v Speaker 2>It worked, and specifically.

762
00:35:38.559 --> 00:35:39.760
<v Speaker 1>Where's the copy protection?

763
00:35:40.000 --> 00:35:43.079
<v Speaker 2>Copy protection? What does it work? Mechanism work, So it's

764
00:35:43.119 --> 00:35:45.119
<v Speaker 2>like detective work. This is like detective work.

765
00:35:45.199 --> 00:35:49.840
<v Speaker 1>You're following the clues, trying to piece together the puzzle

766
00:35:50.320 --> 00:35:52.719
<v Speaker 1>of how this game is protecting itself.

767
00:35:52.360 --> 00:35:55.119
<v Speaker 2>The execution paths. Yeah, trying to figure out.

768
00:35:55.000 --> 00:35:56.000
<v Speaker 1>It's really challenging.

769
00:35:56.159 --> 00:35:58.559
<v Speaker 2>Okay, when does it get But they were up to

770
00:35:58.599 --> 00:36:02.440
<v Speaker 2>the task protection they were. It happens if they had

771
00:36:02.480 --> 00:36:05.840
<v Speaker 2>the skills, and it determinates what happens if it succeeds

772
00:36:06.000 --> 00:36:08.239
<v Speaker 2>to crack this game, and they had to kind of

773
00:36:08.320 --> 00:36:09.880
<v Speaker 2>like saw that together.

774
00:36:10.039 --> 00:36:10.679
<v Speaker 1>It's amazing.

775
00:36:10.920 --> 00:36:16.159
<v Speaker 2>It's out of work compressive that goes into something like

776
00:36:16.199 --> 00:36:19.639
<v Speaker 2>this of reverse engineering is a testament. So I guess

777
00:36:19.639 --> 00:36:21.800
<v Speaker 2>the takeaway here to their skill.

778
00:36:21.880 --> 00:36:25.559
<v Speaker 1>And their dedication, you know, even something. So what's the

779
00:36:25.679 --> 00:36:31.199
<v Speaker 1>lesson here? Can we learn relatively simple from these hackers, like.

780
00:36:31.159 --> 00:36:36.480
<v Speaker 2>A video game actually very complex, that even seemingly systems

781
00:36:37.079 --> 00:36:42.400
<v Speaker 2>can have incredible depth skills of knowledge, and that cracking

782
00:36:42.480 --> 00:36:49.159
<v Speaker 2>them requires a unique blend engineer of technical skill, creativity,

783
00:36:49.239 --> 00:36:50.199
<v Speaker 2>and perseverance.

784
00:36:50.679 --> 00:36:55.679
<v Speaker 1>So it's not just about it's about thinking outside the.

785
00:36:55.599 --> 00:36:58.480
<v Speaker 2>Box, thinking outside the box, and not giving up when

786
00:36:58.519 --> 00:36:59.480
<v Speaker 2>things get tough.

787
00:36:59.639 --> 00:37:02.239
<v Speaker 1>Yeah, because and I think that's something that.

788
00:37:02.480 --> 00:37:04.920
<v Speaker 2>Cracking something like this, we see it takes a lot

789
00:37:04.960 --> 00:37:06.119
<v Speaker 2>of patience.

790
00:37:07.159 --> 00:37:09.599
<v Speaker 1>Throughout a lot of trial and error this book and

791
00:37:09.719 --> 00:37:12.159
<v Speaker 1>a lot of just banging your head against the wall

792
00:37:12.239 --> 00:37:15.679
<v Speaker 1>that these research sometimes until you finally breakthrough.

793
00:37:15.880 --> 00:37:19.639
<v Speaker 2>Yeah, so they're not afraid to it's inspiring. Just keep

794
00:37:19.679 --> 00:37:20.719
<v Speaker 2>trying it is.

795
00:37:21.199 --> 00:37:23.400
<v Speaker 1>It's a good lesson for life in general, I think

796
00:37:23.440 --> 00:37:25.320
<v Speaker 1>the answer. Yeah, Okay, all right, so what's next?

797
00:37:25.400 --> 00:37:30.079
<v Speaker 2>So moving on what other hacking adventures to something a

798
00:37:30.119 --> 00:37:31.239
<v Speaker 2>little bit more.

799
00:37:31.239 --> 00:37:32.239
<v Speaker 1>What we have in store?

800
00:37:33.920 --> 00:37:37.920
<v Speaker 2>Low level, A low level. This is about uh.

801
00:37:37.519 --> 00:37:39.920
<v Speaker 1>Getting down to the bits and bytes.

802
00:37:39.960 --> 00:37:44.599
<v Speaker 2>Writing secure a right, I like get code for our

803
00:37:44.920 --> 00:37:47.639
<v Speaker 2>ICV architecture RSCV.

804
00:37:48.039 --> 00:37:49.239
<v Speaker 1>That's a hot topic these days.

805
00:37:49.239 --> 00:37:51.679
<v Speaker 2>Our SCV is a relatively.

806
00:37:51.400 --> 00:37:56.199
<v Speaker 1>It's a new processor architecture architecture. It's gaining a lot

807
00:37:56.199 --> 00:37:56.960
<v Speaker 1>of popularity.

808
00:37:57.159 --> 00:37:58.480
<v Speaker 2>It's open source.

809
00:37:58.599 --> 00:37:59.760
<v Speaker 1>Because it's open source.

810
00:37:59.599 --> 00:38:03.039
<v Speaker 3>It's gaining very flexible, a lot of traction, a lot

811
00:38:03.079 --> 00:38:04.199
<v Speaker 3>of potential industries.

812
00:38:04.320 --> 00:38:08.199
<v Speaker 2>Yeah, and so so why is secure coding the challenge

813
00:38:08.239 --> 00:38:10.719
<v Speaker 2>here is important for ri CV?

814
00:38:11.079 --> 00:38:15.320
<v Speaker 1>Okay, Well, just like any other process or architecture, ri

815
00:38:15.360 --> 00:38:19.840
<v Speaker 1>A s c V has its own unique.

816
00:38:19.519 --> 00:38:24.920
<v Speaker 2>Core instructions registers not careful. You can introduce vulnerability being

817
00:38:24.920 --> 00:38:29.000
<v Speaker 2>a new language into your code. Yeah, except if you make.

818
00:38:28.880 --> 00:38:32.280
<v Speaker 1>A grammatical But the stakes are higher because if you

819
00:38:32.400 --> 00:38:35.800
<v Speaker 1>make a mistake of security vulnerability to exploit.

820
00:38:35.480 --> 00:38:41.239
<v Speaker 2>It, take over your system to deal your data done, Bailey.

821
00:38:40.639 --> 00:38:44.079
<v Speaker 1>All sorts of bad things really took. So secure coding

822
00:38:44.519 --> 00:38:49.760
<v Speaker 1>is crucial for any RSCV processor architecture code development, but

823
00:38:50.000 --> 00:38:53.679
<v Speaker 1>especially for a new one. First off, like RI s

824
00:38:53.679 --> 00:38:56.440
<v Speaker 1>CV is because we're still learning someone.

825
00:38:56.280 --> 00:38:58.599
<v Speaker 2>Out the potential pitfalls.

826
00:38:58.800 --> 00:39:00.000
<v Speaker 1>Yeah, why is it important?

827
00:39:00.280 --> 00:39:02.519
<v Speaker 2>We're still discovering new vulnerability.

828
00:39:02.599 --> 00:39:04.400
<v Speaker 1>Shell code is basically a small piece.

829
00:39:04.159 --> 00:39:08.440
<v Speaker 2>Of shell code. Shell code is basically a small piece

830
00:39:08.440 --> 00:39:11.719
<v Speaker 2>of code that's a designed to exploit a vulnerability to

831
00:39:11.920 --> 00:39:16.480
<v Speaker 2>the system. So it's often used as part of an exploit.

832
00:39:17.719 --> 00:39:21.519
<v Speaker 2>So let's say you find a vulnerability in the program.

833
00:39:21.639 --> 00:39:23.039
<v Speaker 2>You can write some.

834
00:39:23.000 --> 00:39:24.840
<v Speaker 1>Shell code deep understanding that.

835
00:39:24.840 --> 00:39:29.000
<v Speaker 2>Will take advantage of that vulnerability and give you control

836
00:39:29.719 --> 00:39:33.719
<v Speaker 2>of the system. So it's a very powerful technique.

837
00:39:33.800 --> 00:39:37.039
<v Speaker 1>In this case, they had to. It's also very dangerous.

838
00:39:36.519 --> 00:39:39.039
<v Speaker 2>Because if it falls into the wrong hands r I

839
00:39:39.159 --> 00:39:42.920
<v Speaker 2>s CV whisperer, So you have to be very careful.

840
00:39:43.039 --> 00:39:43.840
<v Speaker 1>The architectures.

841
00:39:43.920 --> 00:39:45.679
<v Speaker 2>When you're writing shell code.

842
00:39:45.360 --> 00:39:46.480
<v Speaker 1>The deepest secrets, you.

843
00:39:46.440 --> 00:39:49.400
<v Speaker 2>Have to make sure that it's not going to secure

844
00:39:49.440 --> 00:39:51.000
<v Speaker 2>show do anything unintended.

845
00:39:51.400 --> 00:39:52.719
<v Speaker 1>So he had the master do you want.

846
00:39:52.559 --> 00:39:57.760
<v Speaker 2>To accidentally crash the system or instruction?

847
00:39:58.239 --> 00:40:00.920
<v Speaker 1>The register calling conventions give.

848
00:40:00.760 --> 00:40:06.599
<v Speaker 2>The attacker more control than you intended. So it's a

849
00:40:06.679 --> 00:40:11.360
<v Speaker 2>delicate balance between the power and syntax of a new lege.

850
00:40:11.400 --> 00:40:15.000
<v Speaker 1>It's a challenging field, but it's also very rewarding.

851
00:40:14.639 --> 00:40:17.320
<v Speaker 2>Much higher states if you can do it right. Yeah,

852
00:40:18.079 --> 00:40:21.280
<v Speaker 2>so because if you miss what.

853
00:40:21.119 --> 00:40:24.199
<v Speaker 1>Can we learn from Gone Bailey's.

854
00:40:23.719 --> 00:40:27.119
<v Speaker 2>Work A security hole? I think it shows the challenges

855
00:40:27.159 --> 00:40:32.719
<v Speaker 2>of adapting security practices to new and emerging technologies.

856
00:40:32.760 --> 00:40:35.719
<v Speaker 1>So what does this tell us as we scurrey.

857
00:40:35.280 --> 00:40:38.559
<v Speaker 2>In general push the boundaries of computing.

858
00:40:38.760 --> 00:40:41.400
<v Speaker 1>What's the lesson here? We need to make sure a

859
00:40:41.719 --> 00:40:44.599
<v Speaker 1>highlight the doors wide open attack.

860
00:40:44.400 --> 00:40:48.480
<v Speaker 2>An ongoing process. We can't just assume one thing is

861
00:40:48.559 --> 00:40:49.840
<v Speaker 2>new technology that.

862
00:40:49.800 --> 00:40:51.400
<v Speaker 1>It's automatically secure.

863
00:40:51.719 --> 00:40:54.559
<v Speaker 2>We need to evolve ourselves talking about security.

864
00:40:54.159 --> 00:40:57.280
<v Speaker 1>From the ground up. We have to design our systems

865
00:40:58.119 --> 00:40:59.960
<v Speaker 1>with security in mind.

866
00:41:00.679 --> 00:41:02.239
<v Speaker 2>Building a new house from the.

867
00:41:02.159 --> 00:41:03.840
<v Speaker 1>Very beginning, you want.

868
00:41:03.679 --> 00:41:07.280
<v Speaker 2>To you want to building a house, It structurally sounds

869
00:41:07.360 --> 00:41:10.440
<v Speaker 2>on a solid foundation and secure.

870
00:41:10.280 --> 00:41:11.239
<v Speaker 1>From the ground up.

871
00:41:11.400 --> 00:41:12.679
<v Speaker 2>From the ground up.

872
00:41:12.639 --> 00:41:16.679
<v Speaker 1>To start thinking about reinforcements until.

873
00:41:17.039 --> 00:41:18.199
<v Speaker 2>You have to think about it from.

874
00:41:18.079 --> 00:41:20.639
<v Speaker 1>The start caves in to start.

875
00:41:20.840 --> 00:41:24.760
<v Speaker 2>That's a great analogy thinking about reinforcements. So that's what

876
00:41:24.880 --> 00:41:27.800
<v Speaker 2>this whoc or gtf O I think that's all about.

877
00:41:28.039 --> 00:41:35.639
<v Speaker 1>It's about proactively identifying and mitigating identifying these vulnerabilities. It's

878
00:41:35.679 --> 00:41:39.559
<v Speaker 1>not just about finding the vulnerabilities, it's also about.

879
00:41:39.440 --> 00:41:42.480
<v Speaker 2>How to fix them, how to mitigate them, building a

880
00:41:42.599 --> 00:41:45.400
<v Speaker 2>more sharing that knowledge community.

881
00:41:44.960 --> 00:41:45.840
<v Speaker 1>With the community.

882
00:41:46.360 --> 00:41:48.760
<v Speaker 2>It's not just about sharing knowledge finding the.

883
00:41:48.800 --> 00:41:55.599
<v Speaker 1>Problem to make the world a safer place. It's a noble.

884
00:41:55.280 --> 00:41:58.639
<v Speaker 2>Goal and I think that's what's really inspiring. We need

885
00:41:58.679 --> 00:42:03.440
<v Speaker 2>more people about this book like that in the world.

886
00:42:03.760 --> 00:42:07.639
<v Speaker 2>A celebration of human curiosity. We're willing to share their

887
00:42:07.679 --> 00:42:10.239
<v Speaker 2>knowledge ingenuity and it feels celebration.

888
00:42:10.400 --> 00:42:12.360
<v Speaker 1>Yeah. It's a great community to be a part of

889
00:42:12.400 --> 00:42:15.280
<v Speaker 1>our collaboration and this book is a great example of that.

890
00:42:15.360 --> 00:42:17.159
<v Speaker 2>And it's a reminder that we all have a role

891
00:42:17.199 --> 00:42:17.960
<v Speaker 2>to play for.

892
00:42:18.039 --> 00:42:27.039
<v Speaker 1>Our deep dive into sc or GTFO Volume three Technology.

893
00:42:27.800 --> 00:42:30.239
<v Speaker 1>I hope you enjoyed it. I hope you learn.

894
00:42:30.119 --> 00:42:32.480
<v Speaker 2>Something and more securely for everyone.

895
00:42:32.599 --> 00:42:33.480
<v Speaker 1>It's inspired you.

896
00:42:33.760 --> 00:42:35.639
<v Speaker 2>Yeah, so go out there.

897
00:42:35.840 --> 00:42:39.519
<v Speaker 1>That's a wrap and hack something a deep dive responsibly

898
00:42:39.519 --> 00:42:39.880
<v Speaker 1>of course.

899
00:42:39.960 --> 00:42:42.920
<v Speaker 2>Yeah. And to POSSE or GTFO.

900
00:42:42.559 --> 00:42:47.960
<v Speaker 1>Stay safe, Volume three, Stay Curious.

901
00:42:48.280 --> 00:42:49.440
<v Speaker 2>We hope you enjoyed it.

902
00:42:49.519 --> 00:42:52.039
<v Speaker 1>We'll see you next time for another year JEP dive

903
00:42:52.679 --> 00:42:53.840
<v Speaker 1>into the world.

904
00:42:53.639 --> 00:42:54.840
<v Speaker 2>Of security research.

905
00:42:55.039 --> 00:43:00.639
<v Speaker 1>To keep hacking, hacking, keep learning, weap learning and pushing

906
00:43:00.800 --> 00:43:02.199
<v Speaker 1>the boundaries.

907
00:43:01.599 --> 00:43:04.960
<v Speaker 2>Pushing the possible until next time of what's possible.

908
00:43:05.159 --> 00:43:07.559
<v Speaker 1>Stay curious and stay secure.

909
00:43:07.760 --> 00:43:10.559
<v Speaker 2>Stay curious, all right, and stay secure and stay
