1
1

00:00:00,300  -->  00:00:01,620
<v Instructor>As we mentioned before,</v>
2

2

00:00:01,620  -->  00:00:04,650
threat research can be delivered as narrative reports
3

3

00:00:04,650  -->  00:00:05,880
or automated feeds
4

4

00:00:05,880  -->  00:00:08,430
designed to correlate local security information
5

5

00:00:08,430  -->  00:00:10,710
with cyber threat intelligence data.
6

6

00:00:10,710  -->  00:00:13,590
Now, sharing is caring in the threat intelligence world,
7

7

00:00:13,590  -->  00:00:15,720
so to make it easier to share data,
8

8

00:00:15,720  -->  00:00:17,670
there are lots of different formats out there
9

9

00:00:17,670  -->  00:00:18,960
that could be used.
10

10

00:00:18,960  -->  00:00:20,070
In this lesson,
11

11

00:00:20,070  -->  00:00:22,650
we're going to discuss the four most common formats
12

12

00:00:22,650  -->  00:00:23,760
and processes,
13

13

00:00:23,760  -->  00:00:27,960
known as STIX, TAXII, OpenIOC, and MISP.
14

14

00:00:27,960  -->  00:00:30,180
The first one we want to talk about is STIX,
15

15

00:00:30,180  -->  00:00:33,270
which is the Structured Threat Information eXpression.
16

16

00:00:33,270  -->  00:00:36,030
Now, this is a standard terminology for IoCs
17

17

00:00:36,030  -->  00:00:38,730
and ways of indicating relationships between them
18

18

00:00:38,730  -->  00:00:39,870
that's included as part
19

19

00:00:39,870  -->  00:00:43,680
of the OASIS Cyber Threat Intelligence, or CTI, framework.
20

20

00:00:43,680  -->  00:00:47,160
Now, STIX is designed as a format for automated feeds
21

21

00:00:47,160  -->  00:00:50,370
so organizations can share this information on the fly.
22

22

00:00:50,370  -->  00:00:51,720
STIX does a great job
23

23

00:00:51,720  -->  00:00:53,790
of sharing information between systems,
24

24

00:00:53,790  -->  00:00:54,623
and it's expressed
25

25

00:00:54,623  -->  00:00:57,870
in JavaScript object notation, or JSON, format.
26

26

00:00:57,870  -->  00:00:58,860
With JSON,
27

27

00:00:58,860  -->  00:01:01,500
you get an attribute and value paired together
28

28

00:01:01,500  -->  00:01:03,150
inside of the language,
29

29

00:01:03,150  -->  00:01:05,610
and essentially, it's going to look like this.
30

30

00:01:05,610  -->  00:01:06,570
Notice here how we start
31

31

00:01:06,570  -->  00:01:08,070
with a curly bracket at the beginning
32

32

00:01:08,070  -->  00:01:09,570
and a curly bracket at the end.
33

33

00:01:09,570  -->  00:01:11,280
And then, we have a lot of different pairs,
34

34

00:01:11,280  -->  00:01:13,860
such as type, observed-data,
35

35

00:01:13,860  -->  00:01:16,020
id, with some-unique-string,
36

36

00:01:16,020  -->  00:01:17,970
created, and some date,
37

37

00:01:17,970  -->  00:01:20,130
the number_observed, and a number.
38

38

00:01:20,130  -->  00:01:22,260
And you can see how these attributes and values
39

39

00:01:22,260  -->  00:01:24,690
are paired together inside this language.
40

40

00:01:24,690  -->  00:01:26,670
If you see something that looks like this,
41

41

00:01:26,670  -->  00:01:28,230
this is JSON format,
42

42

00:01:28,230  -->  00:01:29,850
and on the exam,
43

43

00:01:29,850  -->  00:01:31,770
if you see something in JSON format
44

44

00:01:31,770  -->  00:01:34,620
it's most likely going to be referring to STIX.
45

45

00:01:34,620  -->  00:01:35,670
Now, STIX is built
46

46

00:01:35,670  -->  00:01:38,910
from higher-level STIX domain objects, or SDOs,
47

47

00:01:38,910  -->  00:01:42,060
and these can contain multiple attributes and values.
48

48

00:01:42,060  -->  00:01:43,620
We put all these things together
49

49

00:01:43,620  -->  00:01:45,840
to get the information we're looking for.
50

50

00:01:45,840  -->  00:01:47,820
Now, what are some of these SDOs?
51

51

00:01:47,820  -->  00:01:50,040
Well, we have things like observed data
52

52

00:01:50,040  -->  00:01:51,600
which is going to be a stateful property
53

53

00:01:51,600  -->  00:01:52,800
of your computer system
54

54

00:01:52,800  -->  00:01:55,440
and what you've actually seen the event occurring in.
55

55

00:01:55,440  -->  00:01:57,480
This might be something like an IP address
56

56

00:01:57,480  -->  00:02:00,180
or an executable file or something like that.
57

57

00:02:00,180  -->  00:02:01,830
We also have indicators.
58

58

00:02:01,830  -->  00:02:03,930
Indicators are a pattern of observables
59

59

00:02:03,930  -->  00:02:05,100
that are of interest,
60

60

00:02:05,100  -->  00:02:07,770
something that you want to do some further analysis on.
61

61

00:02:07,770  -->  00:02:09,000
Anytime you have an indicator,
62

62

00:02:09,000  -->  00:02:10,470
this is something that's been observed
63

63

00:02:10,470  -->  00:02:12,000
and you may want to dig a little deeper on
64

64

00:02:12,000  -->  00:02:14,400
to figure out if it's an indicator of past compromise
65

65

00:02:14,400  -->  00:02:15,810
or a TTP.
66

66

00:02:15,810  -->  00:02:17,520
And then, we have attack patterns.
67

67

00:02:17,520  -->  00:02:18,660
When we deal with attack patterns,
68

68

00:02:18,660  -->  00:02:20,760
these are known adversary behaviors,
69

69

00:02:20,760  -->  00:02:22,230
starting with the overall goal
70

70

00:02:22,230  -->  00:02:23,610
of what they're trying to attack
71

71

00:02:23,610  -->  00:02:24,690
and then elaborating down
72

72

00:02:24,690  -->  00:02:27,300
to some kind of specific technique or procedure.
73

73

00:02:27,300  -->  00:02:29,940
Then we have campaigns and threat actors.
74

74

00:02:29,940  -->  00:02:30,930
When we talk about this,
75

75

00:02:30,930  -->  00:02:33,660
these are the people who are trying to attack you.
76

76

00:02:33,660  -->  00:02:34,860
Who are these people?
77

77

00:02:34,860  -->  00:02:36,330
What are their goals?
78

78

00:02:36,330  -->  00:02:37,800
What is their campaign?
79

79

00:02:37,800  -->  00:02:38,640
That's what we're talking about
80

80

00:02:38,640  -->  00:02:41,040
when we talk about the campaign and threat actors.
81

81

00:02:41,040  -->  00:02:43,170
And finally, we have courses of action.
82

82

00:02:43,170  -->  00:02:44,640
Now, we deal with courses of action.
83

83

00:02:44,640  -->  00:02:47,190
This is the mitigating actions or security controls
84

84

00:02:47,190  -->  00:02:49,200
that you can use to reduce the risk
85

85

00:02:49,200  -->  00:02:50,550
from these different attacks
86

86

00:02:50,550  -->  00:02:52,410
and how to resolve these incidents.
87

87

00:02:52,410  -->  00:02:54,360
By taking all these SDOs together,
88

88

00:02:54,360  -->  00:02:56,100
you start creating a connection
89

89

00:02:56,100  -->  00:02:58,110
of this relationship of objects.
90

90

00:02:58,110  -->  00:02:59,880
And this can do a lot of different things for you
91

91

00:02:59,880  -->  00:03:01,770
as you start indicating what it was,
92

92

00:03:01,770  -->  00:03:02,880
what the targets were,
93

93

00:03:02,880  -->  00:03:04,920
and what things were attributed to it.
94

94

00:03:04,920  -->  00:03:07,080
For example, you can see here on the screen,
95

95

00:03:07,080  -->  00:03:08,340
we have a vulnerability,
96

96

00:03:08,340  -->  00:03:09,210
we have a campaign,
97

97

00:03:09,210  -->  00:03:10,440
and we have a threat actor.
98

98

00:03:10,440  -->  00:03:13,530
And you can see how STIX has all these relationships.
99

99

00:03:13,530  -->  00:03:14,910
When we have a single indicator,
100

100

00:03:14,910  -->  00:03:16,650
this indicates a campaign.
101

101

00:03:16,650  -->  00:03:18,540
It indicates a threat actor.
102

102

00:03:18,540  -->  00:03:20,910
The campaign is attributed to the threat actor
103

103

00:03:20,910  -->  00:03:23,970
and the campaign can be attributed over to the target,
104

104

00:03:23,970  -->  00:03:25,500
which was the vulnerability.
105

105

00:03:25,500  -->  00:03:28,410
And the way STIX works is it creates this language
106

106

00:03:28,410  -->  00:03:31,140
for us to describe these things in a very easy way
107

107

00:03:31,140  -->  00:03:34,020
to share them automatically across our systems.
108

108

00:03:34,020  -->  00:03:36,300
Now, one quick note for the exam.
109

109

00:03:36,300  -->  00:03:39,780
STIX version one is an XML-version-based format
110

110

00:03:39,780  -->  00:03:43,380
but the exam is only going to talk about STIX version two.
111

111

00:03:43,380  -->  00:03:46,020
Everything I've talked about up to this point in this lesson
112

112

00:03:46,020  -->  00:03:47,970
was talking about STIX version two,
113

113

00:03:47,970  -->  00:03:50,880
which uses JSON, not XML.
114

114

00:03:50,880  -->  00:03:52,590
Keep that in mind for the exam.
115

115

00:03:52,590  -->  00:03:54,210
If they're asking about STIX,
116

116

00:03:54,210  -->  00:03:55,500
they're talking about version two
117

117

00:03:55,500  -->  00:03:57,720
and they're going to be talking about JSON.
118

118

00:03:57,720  -->  00:03:58,920
The next one we want to talk about
119

119

00:03:58,920  -->  00:04:02,100
is the Trusted Automated Exchange of Indicator Information,
120

120

00:04:02,100  -->  00:04:03,420
or TAXII.
121

121

00:04:03,420  -->  00:04:06,720
Now, TAXII is a protocol for supplying codified information
122

122

00:04:06,720  -->  00:04:09,690
to automate incident detection and analysis.
123

123

00:04:09,690  -->  00:04:10,980
What TAXII is used for
124

124

00:04:10,980  -->  00:04:13,140
is to transmit this data back and forth
125

125

00:04:13,140  -->  00:04:14,820
between servers and clients
126

126

00:04:14,820  -->  00:04:16,920
over some kind of a secure connection,
127

127

00:04:16,920  -->  00:04:20,010
like a secure web connection, HTTPS,
128

128

00:04:20,010  -->  00:04:22,830
using something like a REST API.
129

129

00:04:22,830  -->  00:04:23,700
So for example,
130

130

00:04:23,700  -->  00:04:25,950
if you have a cyber threat intelligence subscription
131

131

00:04:25,950  -->  00:04:27,300
with some service provider,
132

132

00:04:27,300  -->  00:04:29,400
they're going to maintain their data repository,
133

133

00:04:29,400  -->  00:04:30,870
but you as a subscriber
134

134

00:04:30,870  -->  00:04:33,180
need to get the information from them.
135

135

00:04:33,180  -->  00:04:34,290
And so, the way you do this
136

136

00:04:34,290  -->  00:04:36,060
is you're going to obtain this update
137

137

00:04:36,060  -->  00:04:39,630
to all of your data for your analysis tools using TAXII.
138

138

00:04:39,630  -->  00:04:41,820
TAXII is really the connection mechanism,
139

139

00:04:41,820  -->  00:04:43,500
and you can actually take STIX
140

140

00:04:43,500  -->  00:04:45,930
and provide it over TAXII as well.
141

141

00:04:45,930  -->  00:04:49,230
The third area we want to talk about is OpenIOC
142

142

00:04:49,230  -->  00:04:51,600
and this is a framework that was developed by Mandiant
143

143

00:04:51,600  -->  00:04:53,820
that uses XML-formatted files
144

144

00:04:53,820  -->  00:04:55,710
for supplying codified information
145

145

00:04:55,710  -->  00:04:58,590
to automate incident detection and analysis.
146

146

00:04:58,590  -->  00:05:00,600
When we talk about OpenIOC,
147

147

00:05:00,600  -->  00:05:02,580
this is an open source tool
148

148

00:05:02,580  -->  00:05:04,770
and so, it has a lot of different information
149

149

00:05:04,770  -->  00:05:06,060
for each entry.
150

150

00:05:06,060  -->  00:05:06,990
Each entry is going to have
151

151

00:05:06,990  -->  00:05:08,430
a lot of different metadata there,
152

152

00:05:08,430  -->  00:05:09,540
such as the author,
153

153

00:05:09,540  -->  00:05:10,800
the category information,
154

154

00:05:10,800  -->  00:05:11,940
the confidence level,
155

155

00:05:11,940  -->  00:05:12,960
the usage license,
156

156

00:05:12,960  -->  00:05:15,390
plus a description and a definition.
157

157

00:05:15,390  -->  00:05:17,490
All of these definitions that are built-in here
158

158

00:05:17,490  -->  00:05:19,740
are going to be built using logical statements
159

159

00:05:19,740  -->  00:05:21,330
such as DNS host names,
160

160

00:05:21,330  -->  00:05:22,980
or a string pattern for a file name,
161

161

00:05:22,980  -->  00:05:24,240
or something like that
162

162

00:05:24,240  -->  00:05:26,490
so we can build these indicators together.
163

163

00:05:26,490  -->  00:05:28,230
By doing this, we all learn more
164

164

00:05:28,230  -->  00:05:31,020
and we can share these indicators amongst ourselves.
165

165

00:05:31,020  -->  00:05:33,930
The fourth and final one we're going to talk about is MISP,
166

166

00:05:33,930  -->  00:05:36,930
which is the Malware Information Sharing Project.
167

167

00:05:36,930  -->  00:05:39,030
MISP is going to provide a server platform
168

168

00:05:39,030  -->  00:05:40,980
for cyber threat intelligence sharing,
169

169

00:05:40,980  -->  00:05:42,480
a proprietary format,
170

170

00:05:42,480  -->  00:05:45,540
and supports OpenIOC definitions as well,
171

171

00:05:45,540  -->  00:05:49,530
and it can also import export STIX over TAXII.
172

172

00:05:49,530  -->  00:05:50,940
So when you start dealing with MISP,
173

173

00:05:50,940  -->  00:05:53,820
you can start putting all of this information together.
174

174

00:05:53,820  -->  00:05:56,250
We can get the definitions from OpenIOC,
175

175

00:05:56,250  -->  00:05:58,050
we can get the indicators from STIX,
176

176

00:05:58,050  -->  00:06:00,270
and we can transmit all that information back to us
177

177

00:06:00,270  -->  00:06:01,470
over TAXII.
178

178

00:06:01,470  -->  00:06:04,320
And so, using all these together gives us a lot of benefits
179

179

00:06:04,320  -->  00:06:05,340
inside of MISP.
180

180

00:06:05,340  -->  00:06:06,180
And again,
181

181

00:06:06,180  -->  00:06:09,780
MISP is an open source project that is free to use.
182

182

00:06:09,780  -->  00:06:11,580
Now, here's a quick exam tip.
183

183

00:06:11,580  -->  00:06:12,720
For the exam,
184

184

00:06:12,720  -->  00:06:15,810
notice where I spent most of my time in this lesson.
185

185

00:06:15,810  -->  00:06:17,760
We talked a lot about STIX,
186

186

00:06:17,760  -->  00:06:19,980
and so, STIX is going to be much more important
187

187

00:06:19,980  -->  00:06:22,710
than the other three when it comes time for the exam.
188

188

00:06:22,710  -->  00:06:24,060
The big takeaway for this
189

189

00:06:24,060  -->  00:06:26,700
is I want you to remember what that format looks like.
190

190

00:06:26,700  -->  00:06:27,900
You don't have to memorize it,
191

191

00:06:27,900  -->  00:06:28,733
but you should know
192

192

00:06:28,733  -->  00:06:30,990
that when you see a JSON format like that,
193

193

00:06:30,990  -->  00:06:33,270
your mind should trigger that this is STIX
194

194

00:06:33,270  -->  00:06:36,070
and STIX is probably going to be the answer on the exam.
