WEBVTT

1
00:00:00.080 --> 00:00:04.120
<v Speaker 1>Okay, So imagine you're downloading the latest update for your

2
00:00:04.120 --> 00:00:07.639
<v Speaker 1>favorite app, right, You're completely oblivious that a tiny piece

3
00:00:07.639 --> 00:00:09.720
<v Speaker 1>of code is lurking within it, and it's about to

4
00:00:09.720 --> 00:00:13.199
<v Speaker 1>turn your entire system upside down. This is the world

5
00:00:13.240 --> 00:00:17.120
<v Speaker 1>of shell coding, and today our guide to this world

6
00:00:17.359 --> 00:00:20.519
<v Speaker 1>is the shell Coder's Handbook. It's a deep dive into

7
00:00:20.559 --> 00:00:22.839
<v Speaker 1>finding and exploiting software vulnerabilities.

8
00:00:23.000 --> 00:00:25.199
<v Speaker 2>Yeah, you can think of it as like a hacker's playbook,

9
00:00:25.239 --> 00:00:28.800
<v Speaker 2>but instead of using it for nefarious purposes, we're going

10
00:00:28.839 --> 00:00:31.480
<v Speaker 2>to dissect it to understand how these attacks work and

11
00:00:31.519 --> 00:00:32.759
<v Speaker 2>how to defend against them.

12
00:00:32.880 --> 00:00:34.439
<v Speaker 1>So you might be thinking, well, I'm not a hacker,

13
00:00:34.479 --> 00:00:35.880
<v Speaker 1>why should I care about this stuff?

14
00:00:36.000 --> 00:00:36.600
<v Speaker 2>Yeah?

15
00:00:36.679 --> 00:00:40.719
<v Speaker 1>Well, understanding these techniques is actually crucial for anyone who builds, manages,

16
00:00:41.079 --> 00:00:44.079
<v Speaker 1>or even just uses software. It's all about knowing the

17
00:00:44.119 --> 00:00:47.159
<v Speaker 1>attacker's arsenal. That way, you can strengthen your defenses.

18
00:00:47.520 --> 00:00:50.479
<v Speaker 2>Exactly, the more you know about how systems can be compromised,

19
00:00:50.719 --> 00:00:52.399
<v Speaker 2>the better equipped you are to protect them.

20
00:00:52.679 --> 00:00:56.600
<v Speaker 1>So let's start with the basics. What exactly is shell code? Hmmm,

21
00:00:57.159 --> 00:00:58.159
<v Speaker 1>how does it even work?

22
00:00:58.439 --> 00:01:01.079
<v Speaker 2>So? Shell code is essentially a small piece of code

23
00:01:01.079 --> 00:01:04.599
<v Speaker 2>that gets injected into a running program, and it hijacks

24
00:01:04.640 --> 00:01:08.000
<v Speaker 2>its normal execution. Imagine it as like a tiny set

25
00:01:08.000 --> 00:01:11.359
<v Speaker 2>of instructions, and those instructions are whispering to the program

26
00:01:11.640 --> 00:01:13.560
<v Speaker 2>instead of doing what you're supposed.

27
00:01:13.200 --> 00:01:15.840
<v Speaker 1>To do, do this and what is this?

28
00:01:16.040 --> 00:01:19.760
<v Speaker 2>Usually the goal is usually to gain control of the system,

29
00:01:20.000 --> 00:01:22.640
<v Speaker 2>often by spawning a shell, and a shell is like

30
00:01:22.640 --> 00:01:25.200
<v Speaker 2>a command prompt that gives the attacker free rein to

31
00:01:25.239 --> 00:01:26.200
<v Speaker 2>do whatever they want.

32
00:01:26.359 --> 00:01:28.599
<v Speaker 1>Okay, so it's like sneaking a secret agent into a

33
00:01:28.599 --> 00:01:31.680
<v Speaker 1>secure facility. Right, Yeah, they're disguised as a regular employee.

34
00:01:32.480 --> 00:01:34.959
<v Speaker 1>But how do those secret agents even get in? How

35
00:01:34.959 --> 00:01:36.959
<v Speaker 1>does the shell code actually find its way into a

36
00:01:36.959 --> 00:01:37.920
<v Speaker 1>program to begin with?

37
00:01:38.079 --> 00:01:40.959
<v Speaker 2>That's where vulnerabilities come in. One of the most common

38
00:01:41.079 --> 00:01:44.480
<v Speaker 2>entry points is something called a stack overflow. Programs use

39
00:01:44.480 --> 00:01:47.400
<v Speaker 2>a memory structure called the stack to store temporary data,

40
00:01:47.799 --> 00:01:50.280
<v Speaker 2>and if a program isn't careful, an attacker can feed

41
00:01:50.319 --> 00:01:53.719
<v Speaker 2>it more data than the stack can handle. This causes

42
00:01:53.760 --> 00:01:54.439
<v Speaker 2>an overflow.

43
00:01:54.560 --> 00:01:56.640
<v Speaker 1>So it's like trying to stuff a suitcase that's already

44
00:01:56.640 --> 00:01:57.640
<v Speaker 1>bursting at the seams.

45
00:01:57.719 --> 00:02:01.760
<v Speaker 2>Right, something's got to give, precisely, and what usually gives

46
00:02:01.920 --> 00:02:06.840
<v Speaker 2>is crucial data, data that helps control the program's flow. Specifically,

47
00:02:07.239 --> 00:02:11.039
<v Speaker 2>the attacker aims to overwrite the return address, which tells

48
00:02:11.080 --> 00:02:14.080
<v Speaker 2>the program where to go after it finishes executing a function.

49
00:02:14.560 --> 00:02:17.319
<v Speaker 1>So by changing the return address, the attacker can redirect

50
00:02:17.319 --> 00:02:21.840
<v Speaker 1>the program to execute their injected shellcode instead. That's pretty sneaky.

51
00:02:21.599 --> 00:02:25.680
<v Speaker 2>It is, and to increase their chances of success, attackers

52
00:02:25.719 --> 00:02:29.599
<v Speaker 2>often use a technique called the NOP method. They pad

53
00:02:29.639 --> 00:02:33.800
<v Speaker 2>their shellcode with no operation instructions. It's essentially creating a

54
00:02:33.919 --> 00:02:36.639
<v Speaker 2>landing strip for the program to slide right into the

55
00:02:36.680 --> 00:02:37.520
<v Speaker 2>attacker's trap.

56
00:02:37.680 --> 00:02:40.520
<v Speaker 1>Can you explain what a no operation instruction actually does?

57
00:02:40.599 --> 00:02:41.639
<v Speaker 1>I'm not quite clear on that.

58
00:02:41.680 --> 00:02:44.479
<v Speaker 2>Sure. A no operation instruction or NOP it's like a

59
00:02:44.520 --> 00:02:47.039
<v Speaker 2>blank command. It tells the processor do nothing and move

60
00:02:47.080 --> 00:02:50.159
<v Speaker 2>on to the next instruction. By patting the shell code

61
00:02:50.159 --> 00:02:53.639
<v Speaker 2>with NPS, the attacker creates a larger target area. Even

62
00:02:53.680 --> 00:02:55.879
<v Speaker 2>if they don't know the exact memory location of the

63
00:02:55.879 --> 00:02:58.120
<v Speaker 2>shell code, there's a higher chance the program will land

64
00:02:58.199 --> 00:03:02.400
<v Speaker 2>somewhere within that NP sled and eventually execute the malicious code.

65
00:03:02.479 --> 00:03:04.759
<v Speaker 1>That's a pretty clever way to increase the odds at success.

66
00:03:05.120 --> 00:03:07.759
<v Speaker 1>But I'm guessing developers aren't just sitting idly by letting

67
00:03:07.800 --> 00:03:09.560
<v Speaker 1>these stack overflows happen, right.

68
00:03:09.599 --> 00:03:12.599
<v Speaker 2>Of course not. There are countermeasures in place. One common

69
00:03:12.599 --> 00:03:16.000
<v Speaker 2>approach is to make the stack non executable, which means

70
00:03:16.039 --> 00:03:19.360
<v Speaker 2>that code placed on the stack can't be directly run.

71
00:03:19.759 --> 00:03:21.719
<v Speaker 1>So that's like putting up a no trespassing sign on

72
00:03:21.759 --> 00:03:22.280
<v Speaker 1>the stack.

73
00:03:22.159 --> 00:03:24.439
<v Speaker 2>In a way. Yes, it makes it much harder for

74
00:03:24.520 --> 00:03:27.360
<v Speaker 2>attackers to execute their shell code directly from the stack,

75
00:03:27.800 --> 00:03:31.639
<v Speaker 2>but attackers are resourceful. They've found ways around this protection,

76
00:03:32.039 --> 00:03:34.240
<v Speaker 2>like using a technique called return to lib.

77
00:03:34.680 --> 00:03:38.199
<v Speaker 1>Return to lib what is that exactly?

78
00:03:38.400 --> 00:03:42.000
<v Speaker 2>So? Libstruck refers to the standard C library. It contains

79
00:03:42.039 --> 00:03:44.479
<v Speaker 2>a bunch of pre written functions, functions that are used

80
00:03:44.520 --> 00:03:49.120
<v Speaker 2>by many programs. Instead of injecting their own code, attackers

81
00:03:49.120 --> 00:03:52.479
<v Speaker 2>can exploit a stack overflow to redirect the program's flow

82
00:03:52.599 --> 00:03:54.599
<v Speaker 2>to one of these existing functions in lib.

83
00:03:54.800 --> 00:03:57.960
<v Speaker 1>So they're hijacking the program to do their bidding using

84
00:03:58.039 --> 00:03:59.520
<v Speaker 1>legitimate code that's already there.

85
00:04:00.039 --> 00:04:03.039
<v Speaker 2>Exactly. It's like finding a hidden back door in a

86
00:04:03.080 --> 00:04:06.759
<v Speaker 2>seemingly secure system. And it's not just stack overflows we

87
00:04:06.800 --> 00:04:09.319
<v Speaker 2>have to worry about. There's also a whole category of

88
00:04:09.360 --> 00:04:11.759
<v Speaker 2>vulnerabilities called format string bugs.

89
00:04:12.000 --> 00:04:13.439
<v Speaker 1>Format stringbugs? What are those?

90
00:04:13.479 --> 00:04:17.000
<v Speaker 2>Format string bugs are coding errors. They occur when a

91
00:04:17.040 --> 00:04:21.000
<v Speaker 2>program improperly uses functions that handle text formatting, like the

92
00:04:21.040 --> 00:04:25.720
<v Speaker 2>print function in c These seemingly harmless errors can actually

93
00:04:25.759 --> 00:04:27.360
<v Speaker 2>have dangerous consequences.

94
00:04:27.600 --> 00:04:30.680
<v Speaker 1>So these format string bugs sound pretty technical. Can you

95
00:04:30.720 --> 00:04:32.759
<v Speaker 1>give me a more concrete example of how they could

96
00:04:32.800 --> 00:04:33.439
<v Speaker 1>be exploited?

97
00:04:33.560 --> 00:04:36.720
<v Speaker 2>Imagine a website it asks for your username and then

98
00:04:36.759 --> 00:04:41.120
<v Speaker 2>displays a welcome message like welcome username. If the website

99
00:04:41.199 --> 00:04:44.959
<v Speaker 2>uses a vulnerable formatting function, an attacker could manipulate their

100
00:04:45.040 --> 00:04:48.000
<v Speaker 2>username input to inject special characters that change how the

101
00:04:48.040 --> 00:04:51.160
<v Speaker 2>program interprets the format string. This could allow them to

102
00:04:51.199 --> 00:04:54.639
<v Speaker 2>leak sensitive information from the program's memory, or even take

103
00:04:54.639 --> 00:04:55.720
<v Speaker 2>control of its execution.

104
00:04:56.160 --> 00:04:58.759
<v Speaker 1>So a seemingly innocent welcome message could turn into a

105
00:04:58.800 --> 00:05:00.639
<v Speaker 1>security nightmare exactly.

106
00:05:00.639 --> 00:05:02.920
<v Speaker 2>And it's not just limited to websites. These types of

107
00:05:03.000 --> 00:05:06.279
<v Speaker 2>vulnerabilities can exist in all sorts of software, from desktop

108
00:05:06.319 --> 00:05:08.720
<v Speaker 2>applications to embedded systems.

109
00:05:09.079 --> 00:05:11.240
<v Speaker 1>It sounds like we're dealing with the whole ecosystem of

110
00:05:11.319 --> 00:05:15.439
<v Speaker 1>vulnerabilities here, each with its own unique way of being exploited.

111
00:05:15.959 --> 00:05:19.800
<v Speaker 1>This brings up a question, are these exploits specific to

112
00:05:19.920 --> 00:05:23.680
<v Speaker 1>certain operating systems or are they more universal.

113
00:05:23.839 --> 00:05:26.720
<v Speaker 2>That's a great question, and the answer is it attends.

114
00:05:27.240 --> 00:05:30.720
<v Speaker 2>Some vulnerabilities are specific to certain operating systems or even

115
00:05:30.839 --> 00:05:33.959
<v Speaker 2>particular versions of those systems, but there are also many

116
00:05:34.000 --> 00:05:36.480
<v Speaker 2>techniques that are more universal and can be adapted to

117
00:05:36.519 --> 00:05:41.160
<v Speaker 2>different platforms. For example, we have examples of exploits targeting Windows, Solaris,

118
00:05:41.199 --> 00:05:43.399
<v Speaker 2>and OSX, each with its own nuances.

119
00:05:43.600 --> 00:05:46.160
<v Speaker 1>So it's like a game of cat and mouse. Attackers

120
00:05:46.160 --> 00:05:49.240
<v Speaker 1>finding new ways to exploit systems, and developers are trying.

121
00:05:49.079 --> 00:05:53.000
<v Speaker 2>To patch those holes exactly, and as operating systems and

122
00:05:53.040 --> 00:05:58.199
<v Speaker 2>security measures evolve, attackers adapt their techniques. For example, on Windows,

123
00:05:58.560 --> 00:06:02.519
<v Speaker 2>attackers might exploit the way the system handles DLLs. DLLs

124
00:06:02.519 --> 00:06:05.879
<v Speaker 2>are like external code libraries. On Solaris, they might target

125
00:06:05.920 --> 00:06:09.600
<v Speaker 2>the Spark architecture, which has a unique way of managing registers,

126
00:06:09.959 --> 00:06:13.720
<v Speaker 2>and on OSX, they might leverage vulnerabilities in the mock kernel,

127
00:06:13.759 --> 00:06:15.759
<v Speaker 2>which is the core of the operating system.

128
00:06:16.000 --> 00:06:19.000
<v Speaker 1>So it's not just about understanding the general concepts, but

129
00:06:19.079 --> 00:06:22.279
<v Speaker 1>also about knowing the specifics of each platform. It sounds

130
00:06:22.279 --> 00:06:23.480
<v Speaker 1>like this could get pretty complex.

131
00:06:23.759 --> 00:06:25.759
<v Speaker 2>It can, and it's not just computers. We need to

132
00:06:25.800 --> 00:06:29.319
<v Speaker 2>worry about. Network devices like Cisco routers running the iOS

133
00:06:29.399 --> 00:06:32.560
<v Speaker 2>operating system are also vulnerable to these kinds of attacks,

134
00:06:32.600 --> 00:06:32.879
<v Speaker 2>and I.

135
00:06:32.800 --> 00:06:35.879
<v Speaker 1>Imagine compromising a router could have a pretty significant impact

136
00:06:36.040 --> 00:06:38.920
<v Speaker 1>considering they play such a crucial role in Internet infrastructure.

137
00:06:39.040 --> 00:06:42.680
<v Speaker 2>Absolutely, attackers can exploit vulnerabilities in the iOS to gain

138
00:06:42.720 --> 00:06:46.160
<v Speaker 2>control of a router and manipulate network traffic. One common

139
00:06:46.199 --> 00:06:49.040
<v Speaker 2>technique is to target the heap, which is another area

140
00:06:49.079 --> 00:06:51.240
<v Speaker 2>of memory used by programs.

141
00:06:51.040 --> 00:06:54.680
<v Speaker 1>So similar to a stack overflow. Attackers could cause a

142
00:06:54.720 --> 00:06:57.560
<v Speaker 1>heap overflow to overwrite critical data.

143
00:06:57.319 --> 00:06:59.720
<v Speaker 2>Exactly, and they can also exploit the way the heap

144
00:06:59.720 --> 00:07:03.399
<v Speaker 2>manage memory allocation to manipulate pointers, which are like addresses

145
00:07:03.439 --> 00:07:08.160
<v Speaker 2>that point to specific data locations. By overwriting these pointers,

146
00:07:08.199 --> 00:07:12.800
<v Speaker 2>attackers can redirect the program's flow or even modify configuration data,

147
00:07:13.120 --> 00:07:15.800
<v Speaker 2>potentially gaining administrative access to the router.

148
00:07:16.120 --> 00:07:18.959
<v Speaker 1>Wow, this sounds like a pretty serious vulnerability. So if

149
00:07:19.000 --> 00:07:22.720
<v Speaker 1>attackers are constantly finding new ways to exploit systems, how

150
00:07:22.720 --> 00:07:25.439
<v Speaker 1>does security researchers and developers keep up What kind of

151
00:07:25.480 --> 00:07:28.720
<v Speaker 1>countermeasures are being developed to defend against these attacks.

152
00:07:28.759 --> 00:07:31.800
<v Speaker 2>Well, one technique is to use stack canaries. These are

153
00:07:31.879 --> 00:07:34.399
<v Speaker 2>random values that are placed on the stack, and if

154
00:07:34.399 --> 00:07:38.160
<v Speaker 2>an overflow occurs, these canaries get overwritten, alerting the system

155
00:07:38.160 --> 00:07:38.920
<v Speaker 2>that something's wrong.

156
00:07:39.000 --> 00:07:41.560
<v Speaker 1>So it's like putting a fragile canary in a coal mine.

157
00:07:41.680 --> 00:07:44.040
<v Speaker 1>If the canary dies, you know there's danger.

158
00:07:44.360 --> 00:07:47.800
<v Speaker 2>That's a great analogy. And then there's WUX memory. It

159
00:07:47.879 --> 00:07:51.680
<v Speaker 2>marks specific memory regions as either writable or executable, but

160
00:07:51.800 --> 00:07:55.160
<v Speaker 2>not both. This prevents attackers from injecting their code into

161
00:07:55.199 --> 00:07:57.160
<v Speaker 2>a writable area and then executing it.

162
00:07:57.160 --> 00:07:59.720
<v Speaker 1>It's like separating the ingredients for the cooking utensils to

163
00:08:00.079 --> 00:08:02.480
<v Speaker 1>vent any unwanted mixing exactly.

164
00:08:02.959 --> 00:08:07.360
<v Speaker 2>And then we have ASLR, or address space layout randomization.

165
00:08:08.000 --> 00:08:11.439
<v Speaker 2>It randomizes the memory layout each time a program runs.

166
00:08:11.639 --> 00:08:14.000
<v Speaker 2>This makes it much harder for attackers to predict where

167
00:08:14.000 --> 00:08:16.959
<v Speaker 2>to inject their code or where critical data is located.

168
00:08:17.079 --> 00:08:19.680
<v Speaker 1>It's like constantly shuffling the deck, making it difficult for

169
00:08:19.720 --> 00:08:22.360
<v Speaker 1>attackers to find the card they need precisely.

170
00:08:22.720 --> 00:08:25.920
<v Speaker 2>But even with all these countermeasures in place, actually writing

171
00:08:25.959 --> 00:08:29.120
<v Speaker 2>exploits that work reliably in real world environments is a

172
00:08:29.160 --> 00:08:33.759
<v Speaker 2>different challenge. Attackers often need to meticulously fingerprint their target,

173
00:08:34.120 --> 00:08:37.919
<v Speaker 2>identifying the specific operating system version and configuration to ensure

174
00:08:37.960 --> 00:08:39.360
<v Speaker 2>their exploit works.

175
00:08:39.120 --> 00:08:41.879
<v Speaker 1>So it's like a sniper taking careful aim before pulling the.

176
00:08:41.799 --> 00:08:45.279
<v Speaker 2>Trigger, exactly, and they often need to use clever techniques

177
00:08:45.320 --> 00:08:48.679
<v Speaker 2>to leak information from the target system to bypass security

178
00:08:48.759 --> 00:08:51.919
<v Speaker 2>checks and increase their chances of success. It's a constant

179
00:08:52.000 --> 00:08:54.440
<v Speaker 2>game of espionage and counter espionage.

180
00:08:54.519 --> 00:08:56.559
<v Speaker 1>So we've covered a lot of ground here, from the

181
00:08:56.559 --> 00:08:59.600
<v Speaker 1>basics of shell code and stack overflows to the more

182
00:08:59.600 --> 00:09:03.000
<v Speaker 1>advanced techniques of returning to libic and manipulating heap pointers.

183
00:09:03.600 --> 00:09:06.000
<v Speaker 1>And it seems like this is just the tip of

184
00:09:06.039 --> 00:09:09.200
<v Speaker 1>the iceberg when it comes to the world of software exploitation.

185
00:09:09.519 --> 00:09:11.840
<v Speaker 2>You're absolutely right. This is just a glimpse into the

186
00:09:11.879 --> 00:09:16.120
<v Speaker 2>complex world of security vulnerabilities and how attackers exploit them.

187
00:09:16.279 --> 00:09:18.799
<v Speaker 1>And while it can seem daunting, I think it's important

188
00:09:18.840 --> 00:09:22.519
<v Speaker 1>to remember that knowledge is power. By understanding these threats,

189
00:09:22.600 --> 00:09:25.279
<v Speaker 1>we can be more proactive in protecting ourselves.

190
00:09:24.799 --> 00:09:28.559
<v Speaker 2>In our systems exactly. And it's an ongoing process as

191
00:09:28.600 --> 00:09:32.159
<v Speaker 2>technology evolves, so to the threats and the countermeasures. It's

192
00:09:32.200 --> 00:09:35.120
<v Speaker 2>fascinating how these concepts apply not only to individual computers,

193
00:09:35.120 --> 00:09:38.399
<v Speaker 2>but also to the infrastructure of the Internet itself. Think

194
00:09:38.399 --> 00:09:40.679
<v Speaker 2>about the domain name system or DNS.

195
00:09:40.879 --> 00:09:44.120
<v Speaker 1>DNS that's how we translate website names like Google dot

196
00:09:44.159 --> 00:09:47.600
<v Speaker 1>com into those numerical IP addresses, right, the ones computers

197
00:09:47.639 --> 00:09:48.720
<v Speaker 1>actually use exactly.

198
00:09:48.799 --> 00:09:50.919
<v Speaker 2>It's like a phone book for the Internet. But just

199
00:09:51.000 --> 00:09:55.360
<v Speaker 2>like any system, DNS has vulnerabilities. One particularly clever technique

200
00:09:55.399 --> 00:09:57.320
<v Speaker 2>is DNS cash poisoning.

201
00:09:57.639 --> 00:10:02.639
<v Speaker 1>Cash poisoning sounds dangerous. Can you break it down for

202
00:10:02.759 --> 00:10:03.200
<v Speaker 1>me a little?

203
00:10:03.240 --> 00:10:05.440
<v Speaker 2>So imagine you want to visit your bank's website. You

204
00:10:05.480 --> 00:10:08.840
<v Speaker 2>type in the address, and your computer queries a DNS

205
00:10:08.919 --> 00:10:12.399
<v Speaker 2>server to get the corresponding IP address, and this address

206
00:10:12.399 --> 00:10:15.840
<v Speaker 2>gets stored in a cache on your computer. So the

207
00:10:15.840 --> 00:10:18.279
<v Speaker 2>next time you visit the site, the lookup is faster.

208
00:10:18.679 --> 00:10:21.080
<v Speaker 1>Okay, that makes sense. So where does the poisoning come in.

209
00:10:21.480 --> 00:10:24.559
<v Speaker 2>Well, an attacker can manipulate DNS records on a server,

210
00:10:25.080 --> 00:10:29.919
<v Speaker 2>essentially redirecting users to malicious websites instead of their intended destinations.

211
00:10:30.240 --> 00:10:31.759
<v Speaker 2>So the next time you try to visit your bank,

212
00:10:31.759 --> 00:10:34.159
<v Speaker 2>you might actually end up on a fake site, one

213
00:10:34.159 --> 00:10:36.080
<v Speaker 2>that's designed to steal your credentials.

214
00:10:36.200 --> 00:10:39.240
<v Speaker 1>Wow, that's scary at all Because of some messed up

215
00:10:39.320 --> 00:10:41.919
<v Speaker 1>DNS records. It's like being given the wrong phone number

216
00:10:42.039 --> 00:10:44.600
<v Speaker 1>and ending up talking to a stranger instead of your friend.

217
00:10:44.720 --> 00:10:48.399
<v Speaker 2>It is, and these vulnerabilities aren't limited to infrastructure. Web

218
00:10:48.440 --> 00:10:52.200
<v Speaker 2>applications themselves are riddled with potential entry points for attackers.

219
00:10:52.600 --> 00:10:55.480
<v Speaker 2>We're talking about things like cross light scripting or XSS

220
00:10:55.480 --> 00:10:56.559
<v Speaker 2>and SQL injection.

221
00:10:57.000 --> 00:10:59.519
<v Speaker 1>Okay, I've heard those terms thrown around before, but to

222
00:10:59.559 --> 00:11:02.159
<v Speaker 1>be honest, I never really grasped what they meant. Could

223
00:11:02.200 --> 00:11:03.480
<v Speaker 1>you maybe unpack them a little bit?

224
00:11:03.600 --> 00:11:07.720
<v Speaker 2>Sure, let's start with cross site scripting or EXSS. This

225
00:11:07.799 --> 00:11:11.399
<v Speaker 2>occurs when an attacker injects malicious scripts into a website.

226
00:11:11.720 --> 00:11:15.080
<v Speaker 2>When another user visits that page, the script runs in

227
00:11:15.120 --> 00:11:18.679
<v Speaker 2>their browser, potentially giving the attacker control over their session.

228
00:11:18.799 --> 00:11:21.279
<v Speaker 1>So it's like planting a trap on a website, waiting

229
00:11:21.279 --> 00:11:23.200
<v Speaker 1>for an unsuspecting visitor to trigger it.

230
00:11:23.240 --> 00:11:25.759
<v Speaker 2>That's a good analogy. These scripts can do all sorts

231
00:11:25.799 --> 00:11:29.200
<v Speaker 2>of nasty things, like stealing cookies, hijacking sessions, or even

232
00:11:29.240 --> 00:11:32.879
<v Speaker 2>redirecting users to malicious sites. It all boils down to

233
00:11:32.960 --> 00:11:36.440
<v Speaker 2>exploiting the trust that users place in legitimate websites.

234
00:11:36.720 --> 00:11:39.320
<v Speaker 1>That's a pretty devious tactic. Now, what about SEQL injection?

235
00:11:39.679 --> 00:11:41.279
<v Speaker 1>What makes that attack so potent?

236
00:11:41.759 --> 00:11:46.000
<v Speaker 2>Sql injection targets websites that use databases to store information,

237
00:11:46.559 --> 00:11:49.200
<v Speaker 2>which is pretty much every dynamic website these days.

238
00:11:49.240 --> 00:11:50.519
<v Speaker 1>Okay, so how does it actually work?

239
00:11:50.559 --> 00:11:54.080
<v Speaker 2>Okay, So imagine a website. It has a simple log inform,

240
00:11:54.320 --> 00:11:57.919
<v Speaker 2>You enter your username and password. The site then sends

241
00:11:57.919 --> 00:12:01.240
<v Speaker 2>this information to the database to verify it. If the

242
00:12:01.279 --> 00:12:05.039
<v Speaker 2>website isn't properly protected, an attacker can manipulate the input

243
00:12:05.080 --> 00:12:08.480
<v Speaker 2>fields to inject their own SQL commands, so.

244
00:12:08.399 --> 00:12:11.279
<v Speaker 1>Instead of just sending their username, they're sending a command

245
00:12:11.679 --> 00:12:13.360
<v Speaker 1>to the database itself.

246
00:12:13.120 --> 00:12:16.480
<v Speaker 2>Exactly, and these commands can do all sorts of things

247
00:12:16.879 --> 00:12:21.919
<v Speaker 2>like bypassing authentication, retrieving sensitive data, or even modifying the

248
00:12:21.960 --> 00:12:24.679
<v Speaker 2>database itself. It's like speaking directly to the database. You're

249
00:12:24.679 --> 00:12:26.320
<v Speaker 2>cutting out the website as the middleman.

250
00:12:26.480 --> 00:12:28.639
<v Speaker 1>That's a pretty powerful capability if you're able to pull

251
00:12:28.679 --> 00:12:31.320
<v Speaker 1>it off. So what can be done to protect against

252
00:12:31.320 --> 00:12:35.000
<v Speaker 1>these web application vulnerabilities? It seems like a pretty widespread problem.

253
00:12:35.039 --> 00:12:37.120
<v Speaker 2>You're right, it is widespread, and a lot of it

254
00:12:37.159 --> 00:12:40.279
<v Speaker 2>comes down to how developers write their code. Input validation

255
00:12:40.440 --> 00:12:44.159
<v Speaker 2>is key. Websites need to be extremely careful about scrutinizing

256
00:12:44.240 --> 00:12:47.480
<v Speaker 2>any data that users enter, making sure it's what's expected.

257
00:12:47.679 --> 00:12:51.639
<v Speaker 2>And sanitizing it to remove any potentially harmful characters or commands.

258
00:12:51.879 --> 00:12:53.960
<v Speaker 1>So it's like having a really strict bouncer at the door,

259
00:12:54.039 --> 00:12:56.919
<v Speaker 1>right checking IDs and making sure no one sneaks in

260
00:12:56.919 --> 00:12:59.879
<v Speaker 1>with a fake or an altered one. But is that enough?

261
00:13:00.279 --> 00:13:02.720
<v Speaker 1>What about securing the infrastructure itself?

262
00:13:02.919 --> 00:13:05.240
<v Speaker 2>You bring up a crucial point. It's not just about

263
00:13:05.240 --> 00:13:09.240
<v Speaker 2>protecting the website itself, but the entire ecosystem around it.

264
00:13:09.440 --> 00:13:14.159
<v Speaker 2>Web servers, databases, operating systems. All of these components need

265
00:13:14.200 --> 00:13:17.080
<v Speaker 2>to be hardened and regularly patched to prevent attacks.

266
00:13:17.240 --> 00:13:21.279
<v Speaker 1>So it's about building a fortress with multiple layers of defense,

267
00:13:21.919 --> 00:13:24.879
<v Speaker 1>making it as difficult as possible for attackers to penetrate.

268
00:13:25.000 --> 00:13:26.759
<v Speaker 2>That's a good way to think about it, and it's

269
00:13:26.759 --> 00:13:30.559
<v Speaker 2>an ongoing process as new vulnerabilities are constantly being discovered.

270
00:13:30.639 --> 00:13:32.440
<v Speaker 1>This reminds me of what we were talking about earlier,

271
00:13:32.720 --> 00:13:35.639
<v Speaker 1>the cat and mouse game between attackers finding new ways

272
00:13:35.679 --> 00:13:39.039
<v Speaker 1>to exploit systems and defenders trying to patch those holes.

273
00:13:39.279 --> 00:13:40.639
<v Speaker 1>It seems like a never ending battle.

274
00:13:40.799 --> 00:13:44.480
<v Speaker 2>It absolutely is a dynamic field. It's constantly evolving. New

275
00:13:44.519 --> 00:13:47.519
<v Speaker 2>threats and countermeasures emerge all the time, which makes it

276
00:13:47.559 --> 00:13:50.399
<v Speaker 2>crucial for everyone to stay informed, keep systems up to date,

277
00:13:50.559 --> 00:13:52.440
<v Speaker 2>and adopt best security practices.

278
00:13:52.720 --> 00:13:54.960
<v Speaker 1>So while there are people out there actively trying to

279
00:13:55.000 --> 00:13:58.919
<v Speaker 1>exploit weaknesses, there's also a whole community of people working

280
00:13:58.960 --> 00:14:02.200
<v Speaker 1>to make the Internet a safe place. It's not all

281
00:14:02.279 --> 00:14:03.240
<v Speaker 1>doom and gloom, is it.

282
00:14:03.399 --> 00:14:07.159
<v Speaker 2>Absolutely not. Ethical hackers and security researchers are on the

283
00:14:07.200 --> 00:14:11.240
<v Speaker 2>front lines finding vulnerabilities before the bad guys do. They

284
00:14:11.279 --> 00:14:13.919
<v Speaker 2>help develop solutions that make systems more resilient.

285
00:14:14.159 --> 00:14:16.519
<v Speaker 1>So it's a battle between the forces of good and evil,

286
00:14:17.000 --> 00:14:20.440
<v Speaker 1>highly skilled warriors on both sides. Thankfully, the good guys

287
00:14:20.440 --> 00:14:23.559
<v Speaker 1>are out there working tirelessly to protect us all. But

288
00:14:23.639 --> 00:14:27.080
<v Speaker 1>it also highlights the importance of understanding these threats, even

289
00:14:27.120 --> 00:14:29.799
<v Speaker 1>if we're not cybersecurity experts ourselves exactly.

290
00:14:29.960 --> 00:14:32.240
<v Speaker 2>The more we all know about how attacks work, the

291
00:14:32.240 --> 00:14:34.679
<v Speaker 2>better equipped we are to protect ourselves and contribute to

292
00:14:34.720 --> 00:14:35.960
<v Speaker 2>a safer online world.

293
00:14:36.519 --> 00:14:38.720
<v Speaker 1>That makes sense. But we've been talking a lot about

294
00:14:38.720 --> 00:14:42.080
<v Speaker 1>offensive techniques. What about the defensive side. What are some

295
00:14:42.120 --> 00:14:45.159
<v Speaker 1>of the key strategies being used to thwart these attacks.

296
00:14:45.519 --> 00:14:49.159
<v Speaker 2>Well, we touched on ASLR earlier, that memory shuffling technique.

297
00:14:49.200 --> 00:14:52.639
<v Speaker 2>That's one essential countermeasure. By making it harder for attackers

298
00:14:52.639 --> 00:14:55.759
<v Speaker 2>to predict where critical data and code reside. It makes

299
00:14:55.759 --> 00:14:57.519
<v Speaker 2>their exploits much less reliable.

300
00:14:57.720 --> 00:15:00.679
<v Speaker 1>It's like setting up a moving target right, makes it

301
00:15:00.759 --> 00:15:02.840
<v Speaker 1>much harder for them to hit their mark precisely.

302
00:15:03.240 --> 00:15:08.039
<v Speaker 2>And then there's data execution prevention or dep. This security

303
00:15:08.039 --> 00:15:12.799
<v Speaker 2>feature marks certain memory regions as non executable, preventing attackers

304
00:15:12.840 --> 00:15:14.960
<v Speaker 2>from running their injected code directly.

305
00:15:15.320 --> 00:15:17.240
<v Speaker 1>So it's not enough to just inject the code. They

306
00:15:17.279 --> 00:15:19.600
<v Speaker 1>also need to find a way to execute it exactly.

307
00:15:20.200 --> 00:15:23.519
<v Speaker 2>And then there's a whole category of security solutions. They're

308
00:15:23.559 --> 00:15:29.240
<v Speaker 2>known as intrusion detection and prevention systems or IDPs. These

309
00:15:29.240 --> 00:15:34.159
<v Speaker 2>systems monitor network traffic for suspicious activity, flagging potential attacks,

310
00:15:34.200 --> 00:15:35.840
<v Speaker 2>and even blocking them in real time.

311
00:15:35.960 --> 00:15:38.559
<v Speaker 1>So it's like having a security guard constantly patrolling the

312
00:15:38.600 --> 00:15:39.879
<v Speaker 1>network looking for anything out.

313
00:15:39.799 --> 00:15:42.159
<v Speaker 2>Of the ordinary exactly. And these are just a few

314
00:15:42.159 --> 00:15:45.399
<v Speaker 2>examples of the many defensive strategies being deployed to combat

315
00:15:45.440 --> 00:15:48.960
<v Speaker 2>these threats. It's a constantly evolving field, new technologies and

316
00:15:49.000 --> 00:15:50.440
<v Speaker 2>techniques emerging all the time.

317
00:15:50.519 --> 00:15:53.799
<v Speaker 1>It sounds like a fascinating, albeit challenging field to be in.

318
00:15:54.200 --> 00:15:57.480
<v Speaker 2>It certainly is, but it's not just about technology. It's

319
00:15:57.480 --> 00:16:02.279
<v Speaker 2>also about people. Security awareness is crucial, educating users about

320
00:16:02.320 --> 00:16:05.519
<v Speaker 2>common threats and best practices so they can avoid falling

321
00:16:05.639 --> 00:16:06.600
<v Speaker 2>victim to attacks.

322
00:16:06.799 --> 00:16:10.720
<v Speaker 1>It seems like a holistic approach is needed, combining technology,

323
00:16:10.919 --> 00:16:14.720
<v Speaker 1>processes and people to create a truly robust security posture.

324
00:16:14.919 --> 00:16:18.720
<v Speaker 2>Exactly. It's an ongoing journey, not a destination. And speaking

325
00:16:18.720 --> 00:16:21.279
<v Speaker 2>of journeys, we've covered a lot of ground today, from

326
00:16:21.360 --> 00:16:24.799
<v Speaker 2>shell coding basics to advanced techniques like DNS poisoning and

327
00:16:24.840 --> 00:16:28.559
<v Speaker 2>web application vulnerabilities. It's been quite a deep dive, it.

328
00:16:28.559 --> 00:16:31.919
<v Speaker 1>Really has, and it's highlighted just how crucial cybersecurity is

329
00:16:31.960 --> 00:16:34.919
<v Speaker 1>in today's digital world. But before we wrap things up,

330
00:16:34.960 --> 00:16:37.799
<v Speaker 1>there's one more critical aspect. We need to address the

331
00:16:37.879 --> 00:16:40.279
<v Speaker 1>ethical considerations surrounding this knowledge.

332
00:16:40.320 --> 00:16:42.879
<v Speaker 2>That's an excellent point. The techniques we've discussed today are

333
00:16:42.879 --> 00:16:46.000
<v Speaker 2>powerful tools, and it's essential to use them responsibly. They

334
00:16:46.000 --> 00:16:48.440
<v Speaker 2>can be used for good or for bad, and it's

335
00:16:48.639 --> 00:16:50.519
<v Speaker 2>vital to understand that line because in.

336
00:16:50.519 --> 00:16:54.240
<v Speaker 1>The wrong hands, this knowledge could be used for malicious purposes.

337
00:16:54.600 --> 00:16:58.200
<v Speaker 2>Exactly. Ethical hacking and security research are all about using

338
00:16:58.240 --> 00:17:01.960
<v Speaker 2>these skills for good, identifying vulnerabilities, and helping to make

339
00:17:02.000 --> 00:17:03.200
<v Speaker 2>systems more secure.

340
00:17:03.320 --> 00:17:06.559
<v Speaker 1>So it's about using this knowledge to strengthen our defenses,

341
00:17:07.000 --> 00:17:10.799
<v Speaker 1>not to exploit weaknesses for personal gain, precisely, and.

342
00:17:10.720 --> 00:17:14.400
<v Speaker 2>It's crucial to remember that unauthorized access to systems or

343
00:17:14.480 --> 00:17:17.960
<v Speaker 2>data is not only unethical, but also illegal.

344
00:17:18.279 --> 00:17:20.599
<v Speaker 1>No matter how tempting it might be to test your

345
00:17:20.640 --> 00:17:24.200
<v Speaker 1>skills on someone else's system, the consequences can be severe.

346
00:17:24.400 --> 00:17:28.559
<v Speaker 2>Absolutely, the cybersecurity field has a strong ethical code, and

347
00:17:28.599 --> 00:17:32.079
<v Speaker 2>it's imperative to operate within those boundaries because.

348
00:17:31.759 --> 00:17:35.880
<v Speaker 1>With great power comes great responsibility, a principle we should

349
00:17:35.920 --> 00:17:40.400
<v Speaker 1>all strive to uphold in both the digital and physical worlds. Now,

350
00:17:40.440 --> 00:17:42.279
<v Speaker 1>with that in mind, let's move on to the final

351
00:17:42.319 --> 00:17:44.160
<v Speaker 1>part of our deep dive into the world of shell

352
00:17:44.160 --> 00:17:47.359
<v Speaker 1>coding and exploits. We've been exploring the more technical side

353
00:17:47.359 --> 00:17:49.680
<v Speaker 1>of cybersecurity, you know, we've been delving into shell code,

354
00:17:49.720 --> 00:17:52.720
<v Speaker 1>exploits and all these different kinds of vulnerabilities. But as

355
00:17:52.759 --> 00:17:54.680
<v Speaker 1>we've touched upon, there's another dimension to all of this

356
00:17:54.759 --> 00:17:57.079
<v Speaker 1>that we can't ignore, the human element.

357
00:17:57.279 --> 00:17:59.680
<v Speaker 2>You're absolutely right. At the end of the day, it's

358
00:17:59.720 --> 00:18:03.400
<v Speaker 2>pea people who create these vulnerabilities, and it's people who

359
00:18:03.480 --> 00:18:04.640
<v Speaker 2>exploit them, and.

360
00:18:04.599 --> 00:18:07.359
<v Speaker 1>That brings us to the fascinating world of social engineering.

361
00:18:07.880 --> 00:18:10.960
<v Speaker 1>It almost sounds more like psychology than computer science.

362
00:18:11.160 --> 00:18:14.079
<v Speaker 2>It's a bit of both. Actually, social engineering is all

363
00:18:14.079 --> 00:18:17.960
<v Speaker 2>about manipulating people, you know, getting them to divulge sensitive

364
00:18:17.960 --> 00:18:22.920
<v Speaker 2>information or take actions that compromise security. It preys on

365
00:18:23.000 --> 00:18:26.039
<v Speaker 2>our trust, our helpful nature, and sometimes even our fear.

366
00:18:26.559 --> 00:18:28.359
<v Speaker 1>So it's like a con game, but played out in

367
00:18:28.359 --> 00:18:31.319
<v Speaker 1>the digital world. Instead of a charming stranger, you've got

368
00:18:31.319 --> 00:18:34.359
<v Speaker 1>a cleverly crafted email or a fake website.

369
00:18:34.519 --> 00:18:37.720
<v Speaker 2>That's a great analogy. Think about phishing emails, for example.

370
00:18:38.119 --> 00:18:40.400
<v Speaker 2>They often try to create a sense of urgency or

371
00:18:40.480 --> 00:18:43.119
<v Speaker 2>play on our desire to help, and they end up

372
00:18:43.160 --> 00:18:46.799
<v Speaker 2>tricking us into clicking on malicious links or revealing our passwords.

373
00:18:46.799 --> 00:18:49.000
<v Speaker 1>Oh yeah, I've definitely seen those before. Some of them

374
00:18:49.039 --> 00:18:52.599
<v Speaker 1>are getting incredibly sophisticated these days. It's not just those

375
00:18:52.680 --> 00:18:54.920
<v Speaker 1>obvious Nigerian print scams anymore.

376
00:18:55.119 --> 00:18:57.480
<v Speaker 2>Yeah, they're evolving all the time, and that's why it's

377
00:18:57.480 --> 00:18:59.799
<v Speaker 2>so important to be aware of the techniques that social

378
00:18:59.799 --> 00:19:04.519
<v Speaker 2>life engineers use. Be skeptical of any unsolicited requests for information,

379
00:19:05.039 --> 00:19:07.119
<v Speaker 2>even if they appear to come from a trusted source.

380
00:19:07.960 --> 00:19:11.160
<v Speaker 1>So it's all about verifying everything before you take any action,

381
00:19:11.839 --> 00:19:15.000
<v Speaker 1>don't click on links from unknown senders, never reveal your

382
00:19:15.039 --> 00:19:18.599
<v Speaker 1>passwords over email or phone, and always double check a

383
00:19:18.680 --> 00:19:23.039
<v Speaker 1>website to URL before entering any sensitive information. Is there

384
00:19:23.039 --> 00:19:24.440
<v Speaker 1>anything else that we should be wary of?

385
00:19:24.680 --> 00:19:28.799
<v Speaker 2>Absolutely? Social engineering tactics can be quite diverse. Someone might

386
00:19:28.839 --> 00:19:32.279
<v Speaker 2>impersonate a tech support person to gain remote access to

387
00:19:32.319 --> 00:19:35.400
<v Speaker 2>your computer, or they might try to glean information through

388
00:19:35.440 --> 00:19:39.039
<v Speaker 2>seemingly casual conversations. It's important to be mindful of the

389
00:19:39.079 --> 00:19:41.720
<v Speaker 2>information we share, both online and offline.

390
00:19:41.960 --> 00:19:45.079
<v Speaker 1>It's a good reminder that security isn't just about firewalls

391
00:19:45.079 --> 00:19:48.200
<v Speaker 1>and encryption, It's about being aware of that human factor

392
00:19:48.400 --> 00:19:52.119
<v Speaker 1>in every interaction. Now, we've talked extensively about the different

393
00:19:52.240 --> 00:19:55.319
<v Speaker 1>types of attacks and vulnerabilities out there, but what about

394
00:19:55.319 --> 00:19:57.839
<v Speaker 1>the motivations behind them? Why do people engage in these

395
00:19:57.880 --> 00:19:59.440
<v Speaker 1>malicious activities in the first place.

396
00:19:59.680 --> 00:20:03.079
<v Speaker 2>Well, the motivations are varied. Some hackers are driven by

397
00:20:03.079 --> 00:20:08.119
<v Speaker 2>financial gain, seeking to steal money or intellectual property. Cybercrime

398
00:20:08.240 --> 00:20:10.680
<v Speaker 2>is unfortunately big business these days, as like the.

399
00:20:10.599 --> 00:20:14.039
<v Speaker 1>Digital equivalent of bank robbery, but potentially on a much

400
00:20:14.119 --> 00:20:15.400
<v Speaker 1>larger scale exactly.

401
00:20:15.599 --> 00:20:19.759
<v Speaker 2>Others may be motivated by political or ideological goals, seeking

402
00:20:19.799 --> 00:20:23.160
<v Speaker 2>to disrupt or damage organizations that they oppose. This is

403
00:20:23.200 --> 00:20:24.640
<v Speaker 2>often referred to as hacktivism.

404
00:20:24.920 --> 00:20:26.759
<v Speaker 1>And then they're those who just seem to be driven

405
00:20:26.799 --> 00:20:30.279
<v Speaker 1>by the challenge itself, the thrill of finding and exploiting

406
00:20:30.279 --> 00:20:33.359
<v Speaker 1>a vulnerability. It's almost like a gain to them, You're right.

407
00:20:33.920 --> 00:20:36.240
<v Speaker 2>Some see it as a test of their skills, a

408
00:20:36.319 --> 00:20:39.519
<v Speaker 2>way to prove their abilities. But regardless of the motivation,

409
00:20:40.079 --> 00:20:43.359
<v Speaker 2>the impact of these attacks can be devastating, ranging from

410
00:20:43.400 --> 00:20:47.960
<v Speaker 2>financial losses to reputational damage and even threats to national security.

411
00:20:48.359 --> 00:20:51.359
<v Speaker 1>It's a sobering reminder that cybersecurity isn't just about protecting

412
00:20:51.359 --> 00:20:54.839
<v Speaker 1>our data. It's about protecting our privacy, our livelihoods, and

413
00:20:54.880 --> 00:20:57.799
<v Speaker 1>even our safety. So as we wrap up this deep dive,

414
00:20:58.039 --> 00:21:00.480
<v Speaker 1>I'm curious if you could give our listeners one piece

415
00:21:00.480 --> 00:21:02.799
<v Speaker 1>of advice to help them stay safe in the digital world.

416
00:21:02.920 --> 00:21:03.799
<v Speaker 1>What would it be?

417
00:21:03.799 --> 00:21:08.240
<v Speaker 2>Be informed and be proactive. Cybersecurity is a shared responsibility.

418
00:21:08.839 --> 00:21:12.160
<v Speaker 2>Stay up to date on the latest threats, use strong passwords,

419
00:21:12.400 --> 00:21:15.839
<v Speaker 2>use multi factor authentication, and just be cautious about the

420
00:21:15.839 --> 00:21:19.799
<v Speaker 2>information you share online. Knowledge is power. The more you know,

421
00:21:20.039 --> 00:21:23.519
<v Speaker 2>the better equipped you'll be to navigate the digital landscapes.

422
00:21:23.079 --> 00:21:26.559
<v Speaker 1>Safely well said, It's been an incredible journey exploring this

423
00:21:26.640 --> 00:21:29.640
<v Speaker 1>intricate world of shell coding and exploits. We learned about

424
00:21:29.640 --> 00:21:34.720
<v Speaker 1>stack overflows, format string bugs, DNS poisoning, even the psychological

425
00:21:34.720 --> 00:21:38.440
<v Speaker 1>tactics of social engineering. It's a reminder that cybersecurity is

426
00:21:38.440 --> 00:21:41.960
<v Speaker 1>an ongoing challenge. It requires vigilance and continuous learning.

427
00:21:42.279 --> 00:21:44.440
<v Speaker 2>I agree. I hope this deep dive has empowered you

428
00:21:44.480 --> 00:21:47.000
<v Speaker 2>to be more informed and more proactive in protecting your

429
00:21:47.039 --> 00:21:47.799
<v Speaker 2>digital life.

430
00:21:48.039 --> 00:21:52.039
<v Speaker 1>To our listeners, stay curious, stay vigilant, and stay safe

431
00:21:52.039 --> 00:21:55.720
<v Speaker 1>out there. Remember knowledge is your strongest defense in the

432
00:21:55.759 --> 00:21:57.759
<v Speaker 1>ever evolving world of cybersecurity.
