1
1

00:00:00,120  -->  00:00:00,990
<v Instructor>In this lesson,</v>
2

2

00:00:00,990  -->  00:00:02,010
we're going to dig into the world
3

3

00:00:02,010  -->  00:00:04,680
of APIs, webhooks, and plugins.
4

4

00:00:04,680  -->  00:00:06,930
First, let's cover APIs.
5

5

00:00:06,930  -->  00:00:09,660
An API, or application programming interface,
6

6

00:00:09,660  -->  00:00:11,460
is a set of protocols and routines
7

7

00:00:11,460  -->  00:00:14,370
for building and interacting with software applications.
8

8

00:00:14,370  -->  00:00:15,210
Essentially,
9

9

00:00:15,210  -->  00:00:17,910
it serves as an intermediary between different systems,
10

10

00:00:17,910  -->  00:00:19,200
allowing them to communicate
11

11

00:00:19,200  -->  00:00:20,970
and exchange data with each other.
12

12

00:00:20,970  -->  00:00:22,260
This is a key concept
13

13

00:00:22,260  -->  00:00:24,990
when discussing the use of service-oriented architectures
14

14

00:00:24,990  -->  00:00:26,610
to be able to include different systems
15

15

00:00:26,610  -->  00:00:28,530
and piece them all together.
16

16

00:00:28,530  -->  00:00:31,440
APIs allow for automated administration, management,
17

17

00:00:31,440  -->  00:00:32,910
and monitoring of cloud services,
18

18

00:00:32,910  -->  00:00:36,000
as well as many other different types of applications.
19

19

00:00:36,000  -->  00:00:36,900
They are typically built
20

20

00:00:36,900  -->  00:00:39,300
using either the representational state transfer,
21

21

00:00:39,300  -->  00:00:40,230
known as REST,
22

22

00:00:40,230  -->  00:00:42,360
or the Simple Object Access Protocol,
23

23

00:00:42,360  -->  00:00:43,650
known as SOAP.
24

24

00:00:43,650  -->  00:00:45,210
When considering APIs,
25

25

00:00:45,210  -->  00:00:46,890
it's always important to think about their role
26

26

00:00:46,890  -->  00:00:48,630
in the integration that you're going to create
27

27

00:00:48,630  -->  00:00:50,760
because APIs allow for direct integration
28

28

00:00:50,760  -->  00:00:52,620
of different third-party applications
29

29

00:00:52,620  -->  00:00:54,360
into your own web applications,
30

30

00:00:54,360  -->  00:00:55,680
and they provide a means
31

31

00:00:55,680  -->  00:00:57,480
for integrating different cloud services
32

32

00:00:57,480  -->  00:00:59,850
by configuring, provisioning, and automating
33

33

00:00:59,850  -->  00:01:02,340
a bunch of different business functions for us.
34

34

00:01:02,340  -->  00:01:05,070
For example, in my own company, Dion Training,
35

35

00:01:05,070  -->  00:01:07,410
we utilize a centralized service management tool
36

36

00:01:07,410  -->  00:01:08,940
known as Freshdesk.
37

37

00:01:08,940  -->  00:01:11,610
This is a commercially available and proprietary product
38

38

00:01:11,610  -->  00:01:13,050
that we use to track and answer
39

39

00:01:13,050  -->  00:01:14,310
questions and trouble tickets
40

40

00:01:14,310  -->  00:01:15,510
from our students.
41

41

00:01:15,510  -->  00:01:18,780
So, if you email support@diontraining.com,
42

42

00:01:18,780  -->  00:01:21,000
it's actually going to go into our Freshdesk system
43

43

00:01:21,000  -->  00:01:22,230
that receives your email.
44

44

00:01:22,230  -->  00:01:24,720
It parses it, creates a support ticket for you,
45

45

00:01:24,720  -->  00:01:26,670
and sends you an automatic reply
46

46

00:01:26,670  -->  00:01:28,710
to let you know we received your email.
47

47

00:01:28,710  -->  00:01:30,630
Then our student support analysts
48

48

00:01:30,630  -->  00:01:32,280
are going to work on answering your questions
49

49

00:01:32,280  -->  00:01:33,540
and supporting your needs
50

50

00:01:33,540  -->  00:01:35,670
by using our Freshdesk system.
51

51

00:01:35,670  -->  00:01:37,200
But we have a lot of students
52

52

00:01:37,200  -->  00:01:39,870
who take our courses on other sites like Udemy.
53

53

00:01:39,870  -->  00:01:41,400
And if you post a question on Udemy
54

54

00:01:41,400  -->  00:01:43,230
in their Q&amp;A section of the course,
55

55

00:01:43,230  -->  00:01:44,820
they actually don't even send us an email
56

56

00:01:44,820  -->  00:01:46,590
to tell us you posted a question.
57

57

00:01:46,590  -->  00:01:48,330
And this is a really big problem for us
58

58

00:01:48,330  -->  00:01:50,700
because we have about a million students on Udemy,
59

59

00:01:50,700  -->  00:01:52,170
and trying to answer all those questions
60

60

00:01:52,170  -->  00:01:54,090
directly in the Udemy Q&amp;A system
61

61

00:01:54,090  -->  00:01:56,100
would be really inefficient for our team,
62

62

00:01:56,100  -->  00:01:57,210
and we don't even know
63

63

00:01:57,210  -->  00:01:58,350
when one of those happens
64

64

00:01:58,350  -->  00:02:00,270
because they don't tell us by email.
65

65

00:02:00,270  -->  00:02:03,360
So, instead, we use Udemy's API
66

66

00:02:03,360  -->  00:02:05,790
to be able to ask and check for any new questions
67

67

00:02:05,790  -->  00:02:07,410
about every four hours.
68

68

00:02:07,410  -->  00:02:08,520
If we find one,
69

69

00:02:08,520  -->  00:02:09,870
then we parse that information,
70

70

00:02:09,870  -->  00:02:12,030
create a ticket inside of our Freshdesk system,
71

71

00:02:12,030  -->  00:02:13,260
and our student support analysts
72

72

00:02:13,260  -->  00:02:16,080
can see it and answer it directly within Freshdesk.
73

73

00:02:16,080  -->  00:02:17,610
Now, once they answer it,
74

74

00:02:17,610  -->  00:02:19,350
Freshdesk is actually going to send a response
75

75

00:02:19,350  -->  00:02:20,970
back to our automation code
76

76

00:02:20,970  -->  00:02:22,200
that uses a webhook.
77

77

00:02:22,200  -->  00:02:23,970
And then this allows us to send that response
78

78

00:02:23,970  -->  00:02:25,890
all the way back to Udemy's API
79

79

00:02:25,890  -->  00:02:27,330
as the response to your question,
80

80

00:02:27,330  -->  00:02:29,837
and then it gets posted inside Udemy's Q&amp;A
81

81

00:02:29,837  -->  00:02:31,500
inside of their website.
82

82

00:02:31,500  -->  00:02:34,020
For you, it looks like I went into the Udemy website
83

83

00:02:34,020  -->  00:02:35,730
and answered it directly on Udemy,
84

84

00:02:35,730  -->  00:02:36,563
but for us,
85

85

00:02:36,563  -->  00:02:38,040
it's much easier and quicker
86

86

00:02:38,040  -->  00:02:40,890
and allows us to manage all these questions at scale
87

87

00:02:40,890  -->  00:02:43,440
to help all of our students much more quickly.
88

88

00:02:43,440  -->  00:02:44,940
Now, in order to do all of this,
89

89

00:02:44,940  -->  00:02:46,560
we have to have a syncing function
90

90

00:02:46,560  -->  00:02:48,360
that occurs every four hours or so
91

91

00:02:48,360  -->  00:02:50,340
to check for new questions from our students,
92

92

00:02:50,340  -->  00:02:52,410
and then we check the answers from our team
93

93

00:02:52,410  -->  00:02:55,350
and post them back as responses to those questions.
94

94

00:02:55,350  -->  00:02:57,690
All of this was done by writing a small program
95

95

00:02:57,690  -->  00:03:00,270
of about 50 to 100 lines of Python code.
96

96

00:03:00,270  -->  00:03:02,460
And we actually connect to both APIs,
97

97

00:03:02,460  -->  00:03:04,770
one for Freshdesk to create those tickets,
98

98

00:03:04,770  -->  00:03:07,020
and one for Udemy to get those questions.
99

99

00:03:07,020  -->  00:03:08,550
And then in the reverse order,
100

100

00:03:08,550  -->  00:03:09,870
getting the answer from Freshdesk
101

101

00:03:09,870  -->  00:03:13,050
and pushing it back to the Udemy question as an answer.
102

102

00:03:13,050  -->  00:03:14,040
This allows us to manage
103

103

00:03:14,040  -->  00:03:16,410
both of these two different cloud systems directly
104

104

00:03:16,410  -->  00:03:18,330
because everything is just an API call,
105

105

00:03:18,330  -->  00:03:20,100
either to Freshdesk or Udemy
106

106

00:03:20,100  -->  00:03:22,770
depending on the direction of that information flow.
107

107

00:03:22,770  -->  00:03:25,500
Now, this is just one example of how APIs can be used
108

108

00:03:25,500  -->  00:03:26,550
to improve efficiency
109

109

00:03:26,550  -->  00:03:29,130
and aid in the integration of different systems.
110

110

00:03:29,130  -->  00:03:30,810
Using an API will give you the ability
111

111

00:03:30,810  -->  00:03:32,520
to call on somebody else's function
112

112

00:03:32,520  -->  00:03:34,500
and let them do all the hard work for you
113

113

00:03:34,500  -->  00:03:37,350
rather than having to build out the entire service yourself.
114

114

00:03:37,350  -->  00:03:38,550
And this, at essence,
115

115

00:03:38,550  -->  00:03:39,570
is what we're talking about
116

116

00:03:39,570  -->  00:03:41,820
with a service-oriented architecture.
117

117

00:03:41,820  -->  00:03:43,770
Now, this isn't the only example of an API
118

118

00:03:43,770  -->  00:03:45,510
that we use inside of our company.
119

119

00:03:45,510  -->  00:03:46,650
Another great example
120

120

00:03:46,650  -->  00:03:47,760
is the API we use
121

121

00:03:47,760  -->  00:03:50,520
to access our online cloud-based services
122

122

00:03:50,520  -->  00:03:53,490
with the integration of our hands-on cloud-based labs
123

123

00:03:53,490  -->  00:03:56,160
for all of our courses at diontraining.com.
124

124

00:03:56,160  -->  00:03:58,410
When you take a course at diontraining.com,
125

125

00:03:58,410  -->  00:03:59,460
we actually have labs
126

126

00:03:59,460  -->  00:04:01,260
that are directly built into our course,
127

127

00:04:01,260  -->  00:04:03,060
but we didn't build those labs.
128

128

00:04:03,060  -->  00:04:05,280
So, if you're taking a CompTIA course
129

129

00:04:05,280  -->  00:04:06,840
at diontraining.com,
130

130

00:04:06,840  -->  00:04:08,250
you're going to get all the video lessons,
131

131

00:04:08,250  -->  00:04:10,680
the study guide, the quizzes, and the practice exams
132

132

00:04:10,680  -->  00:04:12,960
that Dion Training created for our courses.
133

133

00:04:12,960  -->  00:04:15,000
But it also comes with labs,
134

134

00:04:15,000  -->  00:04:16,710
and we don't build those labs ourself.
135

135

00:04:16,710  -->  00:04:18,240
Instead, we're integrating
136

136

00:04:18,240  -->  00:04:20,100
the CompTIA CertMaster lab product
137

137

00:04:20,100  -->  00:04:22,410
directly into your course experience.
138

138

00:04:22,410  -->  00:04:23,370
Now, as a student,
139

139

00:04:23,370  -->  00:04:25,110
when you're going through our course on our website,
140

140

00:04:25,110  -->  00:04:27,510
it looks like it's all one big product to you.
141

141

00:04:27,510  -->  00:04:28,650
You're going through the videos,
142

142

00:04:28,650  -->  00:04:29,760
you're going through the articles,
143

143

00:04:29,760  -->  00:04:30,690
you're going through the quizzes,
144

144

00:04:30,690  -->  00:04:32,640
and eventually you'll hit the different labs
145

145

00:04:32,640  -->  00:04:33,900
in the right places.
146

146

00:04:33,900  -->  00:04:35,070
When you reach a lab,
147

147

00:04:35,070  -->  00:04:36,540
you'll have a short description of the lab
148

148

00:04:36,540  -->  00:04:38,820
and a link that you'll click to open up that lab.
149

149

00:04:38,820  -->  00:04:40,260
When you click on that link,
150

150

00:04:40,260  -->  00:04:43,230
it's actually going to send the information over an API
151

151

00:04:43,230  -->  00:04:44,610
with which lab to start up,
152

152

00:04:44,610  -->  00:04:46,200
which student is requesting the lab,
153

153

00:04:46,200  -->  00:04:47,250
which course it's for,
154

154

00:04:47,250  -->  00:04:49,800
and which lesson it's actually associated with.
155

155

00:04:49,800  -->  00:04:52,380
And all that gets sent to our lab partner system.
156

156

00:04:52,380  -->  00:04:55,170
They then respond back with the right lab for you
157

157

00:04:55,170  -->  00:04:57,270
and allow you to be able to actually use it.
158

158

00:04:57,270  -->  00:04:59,070
Now, when you're working with APIs,
159

159

00:04:59,070  -->  00:05:00,690
there are lots of different tools you can use
160

160

00:05:00,690  -->  00:05:03,240
to test these out as a cybersecurity analyst.
161

161

00:05:03,240  -->  00:05:05,160
One such tool is known as curl,
162

162

00:05:05,160  -->  00:05:08,190
and curl is used to transfer data from one server to another
163

163

00:05:08,190  -->  00:05:09,870
using any supported protocol,
164

164

00:05:09,870  -->  00:05:12,690
including HTTP, HTTPS,
165

165

00:05:12,690  -->  00:05:14,820
FTP, FTPS,
166

166

00:05:14,820  -->  00:05:16,950
SCP, SFTP,
167

167

00:05:16,950  -->  00:05:19,457
TFTP, DICT,
168

168

00:05:19,457  -->  00:05:22,290
TELNET, LDAP, or FILE.
169

169

00:05:22,290  -->  00:05:23,610
As a cybersecurity analyst,
170

170

00:05:23,610  -->  00:05:25,260
if you want to test an API,
171

171

00:05:25,260  -->  00:05:28,380
you're going to use a command like curl --data
172

172

00:05:28,380  -->  00:05:30,660
in order to send data like your first name and last name
173

173

00:05:30,660  -->  00:05:31,770
over to a server.
174

174

00:05:31,770  -->  00:05:32,603
And then the server
175

175

00:05:32,603  -->  00:05:34,350
can return a list of arguments and fields
176

176

00:05:34,350  -->  00:05:36,450
that come back from that API.
177

177

00:05:36,450  -->  00:05:37,350
This allows you to ensure
178

178

00:05:37,350  -->  00:05:39,600
that the API calls are being programmed correctly
179

179

00:05:39,600  -->  00:05:41,820
and that you're getting the expected responses.
180

180

00:05:41,820  -->  00:05:42,690
In this case,
181

181

00:05:42,690  -->  00:05:44,910
I'm sending first name equals Boolean
182

182

00:05:44,910  -->  00:05:46,800
and last name equals world.
183

183

00:05:46,800  -->  00:05:48,450
And where I'm sending it in this case
184

184

00:05:48,450  -->  00:05:53,450
is https://httpbin.org/post.
185

185

00:05:53,910  -->  00:05:55,230
When I send that information,
186

186

00:05:55,230  -->  00:05:56,610
what am I going to get back?
187

187

00:05:56,610  -->  00:05:58,260
Well, I'm going to get back the list
188

188

00:05:58,260  -->  00:05:59,670
that you see here on the screen,
189

189

00:05:59,670  -->  00:06:01,470
which includes a list of arguments and fields
190

190

00:06:01,470  -->  00:06:03,960
that come back from that particular API.
191

191

00:06:03,960  -->  00:06:05,430
This allows you to send data over
192

192

00:06:05,430  -->  00:06:07,260
and then see what comes back.
193

193

00:06:07,260  -->  00:06:09,900
Next, we need to discuss the use of webhooks.
194

194

00:06:09,900  -->  00:06:12,300
Now, webhooks and APIs are both commonly used
195

195

00:06:12,300  -->  00:06:14,160
in the development of software applications,
196

196

00:06:14,160  -->  00:06:16,110
but they are fundamentally different
197

197

00:06:16,110  -->  00:06:18,630
in terms of their purpose and functionality.
198

198

00:06:18,630  -->  00:06:22,020
Remember, an API, or application programming interface,
199

199

00:06:22,020  -->  00:06:23,550
is a set of protocols and routines
200

200

00:06:23,550  -->  00:06:26,160
for building and interacting with software applications.
201

201

00:06:26,160  -->  00:06:28,680
And essentially it serves as this intermediary
202

202

00:06:28,680  -->  00:06:29,970
between different systems
203

203

00:06:29,970  -->  00:06:31,140
and allows them to communicate
204

204

00:06:31,140  -->  00:06:33,150
and exchange data with each other.
205

205

00:06:33,150  -->  00:06:33,983
On the other hand,
206

206

00:06:33,983  -->  00:06:35,970
a webhook is a way for one application
207

207

00:06:35,970  -->  00:06:37,320
to provide other applications
208

208

00:06:37,320  -->  00:06:39,180
with real-time information.
209

209

00:06:39,180  -->  00:06:40,013
Instead of the client
210

210

00:06:40,013  -->  00:06:41,880
having to repeatedly check for updates,
211

211

00:06:41,880  -->  00:06:43,980
the server sends a message, or payload,
212

212

00:06:43,980  -->  00:06:44,813
over to the client
213

213

00:06:44,813  -->  00:06:46,800
when an event of interest occurs.
214

214

00:06:46,800  -->  00:06:50,400
Webhooks can use the HTTP or HTTPS protocols
215

215

00:06:50,400  -->  00:06:51,810
just like an API does.
216

216

00:06:51,810  -->  00:06:54,450
But rather than the client pulling the data,
217

217

00:06:54,450  -->  00:06:57,240
the server is actually pushing the data to the client.
218

218

00:06:57,240  -->  00:06:58,110
In this way,
219

219

00:06:58,110  -->  00:06:59,880
webhooks are more like notifications
220

220

00:06:59,880  -->  00:07:01,200
than a traditional API call
221

221

00:07:01,200  -->  00:07:03,450
where you have to request the information.
222

222

00:07:03,450  -->  00:07:04,800
Now, webhooks are usually set up
223

223

00:07:04,800  -->  00:07:06,990
to listen for specific events to occur,
224

224

00:07:06,990  -->  00:07:09,210
such as an item being added to a shopping cart,
225

225

00:07:09,210  -->  00:07:10,470
a payment being processed,
226

226

00:07:10,470  -->  00:07:13,260
or a message being sent in a chat application.
227

227

00:07:13,260  -->  00:07:15,450
Once that event has been detected as happening,
228

228

00:07:15,450  -->  00:07:16,860
the webhook will then send a message
229

229

00:07:16,860  -->  00:07:18,930
containing information about that event
230

230

00:07:18,930  -->  00:07:21,000
over to a specific URL.
231

231

00:07:21,000  -->  00:07:23,070
This URL can be a server or an endpoint
232

232

00:07:23,070  -->  00:07:24,330
that belongs to the client,
233

233

00:07:24,330  -->  00:07:26,010
or it can be a third-party service
234

234

00:07:26,010  -->  00:07:27,180
that can handle the payload
235

235

00:07:27,180  -->  00:07:29,160
and take the appropriate action.
236

236

00:07:29,160  -->  00:07:30,630
Webhooks are particularly useful
237

237

00:07:30,630  -->  00:07:33,420
in situations where real-time information is critical
238

238

00:07:33,420  -->  00:07:35,970
and where low latency is necessary.
239

239

00:07:35,970  -->  00:07:36,840
For example,
240

240

00:07:36,840  -->  00:07:39,330
if you go over to diontraining.com/vouchers
241

241

00:07:39,330  -->  00:07:41,580
to purchase a certification exam voucher,
242

242

00:07:41,580  -->  00:07:43,020
when your credit card is validated
243

243

00:07:43,020  -->  00:07:44,370
and the payment is received,
244

244

00:07:44,370  -->  00:07:46,680
our credit card processor sends a webhook
245

245

00:07:46,680  -->  00:07:48,390
to our voucher-issuing system
246

246

00:07:48,390  -->  00:07:50,100
so we know your payment was made
247

247

00:07:50,100  -->  00:07:52,350
and we can now issue your exam voucher.
248

248

00:07:52,350  -->  00:07:54,420
Instead of simply waiting to request the information
249

249

00:07:54,420  -->  00:07:56,400
using an API to our credit card processor
250

250

00:07:56,400  -->  00:07:57,660
like once an hour,
251

251

00:07:57,660  -->  00:07:59,310
we instead can use the webhook
252

252

00:07:59,310  -->  00:08:01,200
so we get notified in real time,
253

253

00:08:01,200  -->  00:08:02,730
and we can then issue that voucher to you
254

254

00:08:02,730  -->  00:08:04,260
as soon as possible.
255

255

00:08:04,260  -->  00:08:06,390
By using webhooks instead of an API,
256

256

00:08:06,390  -->  00:08:08,310
our vouchers are usually issued to our students
257

257

00:08:08,310  -->  00:08:09,450
within a few minutes,
258

258

00:08:09,450  -->  00:08:11,340
instead of a few hours or a few days
259

259

00:08:11,340  -->  00:08:13,320
like some other companies out there.
260

260

00:08:13,320  -->  00:08:14,550
Now, in terms of usage,
261

261

00:08:14,550  -->  00:08:16,770
webhooks are generally easier to set up and use
262

262

00:08:16,770  -->  00:08:18,360
than a traditional API.
263

263

00:08:18,360  -->  00:08:20,820
These webhooks rely on the server pushing data
264

264

00:08:20,820  -->  00:08:22,410
instead of a client pulling data,
265

265

00:08:22,410  -->  00:08:24,240
and therefore they don't require the client
266

266

00:08:24,240  -->  00:08:26,250
to repeatedly check for updates.
267

267

00:08:26,250  -->  00:08:27,210
This means that the client
268

268

00:08:27,210  -->  00:08:29,280
can focus on handling data it receives
269

269

00:08:29,280  -->  00:08:30,510
instead of spending resources
270

270

00:08:30,510  -->  00:08:31,567
on constantly asking,
271

271

00:08:31,567  -->  00:08:32,407
"Is there a new update?
272

272

00:08:32,407  -->  00:08:33,960
"Has something changed?"
273

273

00:08:33,960  -->  00:08:36,240
Additionally, because webhooks are event-driven,
274

274

00:08:36,240  -->  00:08:37,200
they're usually less likely
275

275

00:08:37,200  -->  00:08:39,990
to suffer from problems of over-fetching or under-fetching
276

276

00:08:39,990  -->  00:08:42,210
that can plague traditional APIs.
277

277

00:08:42,210  -->  00:08:43,050
Now, remember,
278

278

00:08:43,050  -->  00:08:45,360
APIs and webhooks are two different ways
279

279

00:08:45,360  -->  00:08:47,790
of allowing systems to communicate with each other.
280

280

00:08:47,790  -->  00:08:49,020
While APIs provide a way
281

281

00:08:49,020  -->  00:08:51,480
for a client to request information from a server,
282

282

00:08:51,480  -->  00:08:52,950
webhooks provide a way for the server
283

283

00:08:52,950  -->  00:08:54,600
to proactively push information
284

284

00:08:54,600  -->  00:08:56,880
over to the the client in real time.
285

285

00:08:56,880  -->  00:08:59,400
Finally, we need to discuss plugins.
286

286

00:08:59,400  -->  00:09:02,130
Now, plugins are also known as connectors or add-ons,
287

287

00:09:02,130  -->  00:09:04,110
and they're usually used to extend the functionality
288

288

00:09:04,110  -->  00:09:06,150
of some kind of software program.
289

289

00:09:06,150  -->  00:09:07,560
These plugins will allow users
290

290

00:09:07,560  -->  00:09:08,700
to customize and enhance
291

291

00:09:08,700  -->  00:09:10,290
the capabilities of their software
292

292

00:09:10,290  -->  00:09:12,810
to meet their specific needs and requirements.
293

293

00:09:12,810  -->  00:09:13,920
Plugins are commonly used
294

294

00:09:13,920  -->  00:09:15,390
with many of the tools you're going to use
295

295

00:09:15,390  -->  00:09:16,920
as a cybersecurity analyst,
296

296

00:09:16,920  -->  00:09:20,040
including things like SIEMs and vulnerability scanners.
297

297

00:09:20,040  -->  00:09:20,873
For example,
298

298

00:09:20,873  -->  00:09:21,930
if you're using a SIEM,
299

299

00:09:21,930  -->  00:09:23,220
a plugin can be used to integrate
300

300

00:09:23,220  -->  00:09:25,350
with other security tools and technologies,
301

301

00:09:25,350  -->  00:09:26,730
such as your firewall logs,
302

302

00:09:26,730  -->  00:09:28,290
your intrusion detection systems,
303

303

00:09:28,290  -->  00:09:30,300
and your endpoint security solutions.
304

304

00:09:30,300  -->  00:09:31,260
This allows the SIEM
305

305

00:09:31,260  -->  00:09:32,460
to collect and analyze data
306

306

00:09:32,460  -->  00:09:33,930
from a variety of sources
307

307

00:09:33,930  -->  00:09:35,490
and provides a more comprehensive view
308

308

00:09:35,490  -->  00:09:37,890
of your organization's security posture.
309

309

00:09:37,890  -->  00:09:39,630
Another example would be a plugin
310

310

00:09:39,630  -->  00:09:41,430
that's used to collect logs from a firewall
311

311

00:09:41,430  -->  00:09:43,800
and then forwards them to the SIEM for analysis.
312

312

00:09:43,800  -->  00:09:44,633
This allows the SIEM
313

313

00:09:44,633  -->  00:09:46,080
to then correlate events from the firewall
314

314

00:09:46,080  -->  00:09:47,460
with other security events,
315

315

00:09:47,460  -->  00:09:48,690
such as intrusion attempts,
316

316

00:09:48,690  -->  00:09:51,420
to detect and respond to those potential threats.
317

317

00:09:51,420  -->  00:09:53,220
Vulnerability scanners, on the other hand,
318

318

00:09:53,220  -->  00:09:54,330
also use plugins,
319

319

00:09:54,330  -->  00:09:56,190
but they use 'em a little bit differently.
320

320

00:09:56,190  -->  00:09:58,080
A vulnerability scanner will use plugins
321

321

00:09:58,080  -->  00:09:59,520
to add support for specific types
322

322

00:09:59,520  -->  00:10:01,230
of devices and applications.
323

323

00:10:01,230  -->  00:10:02,130
For example,
324

324

00:10:02,130  -->  00:10:03,870
a vulnerability scanner may have a plugin
325

325

00:10:03,870  -->  00:10:05,400
for all of your Windows tools,
326

326

00:10:05,400  -->  00:10:06,870
another one for your Linux tools,
327

327

00:10:06,870  -->  00:10:08,940
and yet another one for mobile devices.
328

328

00:10:08,940  -->  00:10:10,380
This allows the vulnerability scanner
329

329

00:10:10,380  -->  00:10:13,140
to assess those devices for specific vulnerabilities
330

330

00:10:13,140  -->  00:10:14,520
based on those plugins
331

331

00:10:14,520  -->  00:10:16,350
and then provide you with actionable information
332

332

00:10:16,350  -->  00:10:18,120
on how to remediate them.
333

333

00:10:18,120  -->  00:10:19,320
Now, plugins can also be used
334

334

00:10:19,320  -->  00:10:21,270
to extend the capabilities of a scanner.
335

335

00:10:21,270  -->  00:10:23,220
For example, some scanners provide plugins
336

336

00:10:23,220  -->  00:10:24,900
that can check for misconfigurations
337

337

00:10:24,900  -->  00:10:27,000
or PCI DSS compliance issues
338

338

00:10:27,000  -->  00:10:28,080
and things like that.
339

339

00:10:28,080  -->  00:10:29,790
And this will ensure that a device is configured
340

340

00:10:29,790  -->  00:10:32,910
according to your industry standards or best practices.
341

341

00:10:32,910  -->  00:10:34,140
This can help your organization
342

342

00:10:34,140  -->  00:10:35,730
to ensure your systems are secure
343

343

00:10:35,730  -->  00:10:36,630
and that you're in compliance
344

344

00:10:36,630  -->  00:10:38,970
with relevant regulations and standards.
345

345

00:10:38,970  -->  00:10:40,500
When it comes to developing plugins,
346

346

00:10:40,500  -->  00:10:41,970
they can be developed by the vendor
347

347

00:10:41,970  -->  00:10:44,490
or by third-party software developers.
348

348

00:10:44,490  -->  00:10:46,350
In the case of open-source software,
349

349

00:10:46,350  -->  00:10:48,450
really anybody can develop a plugin for it.
350

350

00:10:48,450  -->  00:10:50,460
But when it comes to commercial software,
351

351

00:10:50,460  -->  00:10:52,560
the vendors or third-party developers
352

352

00:10:52,560  -->  00:10:53,393
will need to ensure
353

353

00:10:53,393  -->  00:10:54,450
that the plugin is compatible
354

354

00:10:54,450  -->  00:10:57,000
with the software it's going to be integrated with.
355

355

00:10:57,000  -->  00:10:58,920
Remember, plugins are an important way
356

356

00:10:58,920  -->  00:11:00,960
for organizations to customize and enhance
357

357

00:11:00,960  -->  00:11:03,540
the capabilities of their cybersecurity software.
358

358

00:11:03,540  -->  00:11:04,680
They allow organizations
359

359

00:11:04,680  -->  00:11:06,660
to integrate with other tools and technologies,
360

360

00:11:06,660  -->  00:11:09,030
as well as extend the capabilities of their software
361

361

00:11:09,030  -->  00:11:11,250
to meet specific needs and requirements.
362

362

00:11:11,250  -->  00:11:13,770
This helps organizations improve their security posture
363

363

00:11:13,770  -->  00:11:15,060
to be able to detect and respond
364

364

00:11:15,060  -->  00:11:16,530
to potential threats much quicker
365

365

00:11:16,530  -->  00:11:17,940
and ensure compliance
366

366

00:11:17,940  -->  00:11:20,250
with relevant regulations and standards.
367

367

00:11:20,250  -->  00:11:22,110
However, it is important to realize
368

368

00:11:22,110  -->  00:11:24,300
that plugins are not without risk.
369

369

00:11:24,300  -->  00:11:25,440
Every plugin you add
370

370

00:11:25,440  -->  00:11:27,960
is increasing the attack surface of your software,
371

371

00:11:27,960  -->  00:11:29,370
and they could be introducing
372

372

00:11:29,370  -->  00:11:31,950
new vulnerabilities and weaknesses to it as well.
373

373

00:11:31,950  -->  00:11:34,380
Therefore, organizations need to carefully evaluate
374

374

00:11:34,380  -->  00:11:36,570
the security of the plugins that they want to use,
375

375

00:11:36,570  -->  00:11:37,860
ensure they're only using plugins
376

376

00:11:37,860  -->  00:11:39,990
that come from trusted and reputable sources
377

377

00:11:39,990  -->  00:11:40,890
to make sure they're maintaining
378

378

00:11:40,890  -->  00:11:43,340
the highest levels of security in their networks.
