-
[Music]
-
Alright, welcome to my enterprise security
-
video playlist. This time we're going to
-
be covering correlation searches. This is
-
a fancy word for a safe search that
-
creates an alert. That's really what it
-
comes down to. They call them notables—
-
there's a lot of terminology involved—
-
but the ultimate concept is a
-
correlation search is a search that
-
fires off at predefined periods of time,
-
maybe every five minutes, every hour,
-
searches back across your logs for
-
certain behaviors, and if it sees it, it
-
creates a...it creates an alert. You can
-
make it create a notable. Technically, it
-
doesn't have to create a notable, and
-
I'll explain how that works, but it's
-
really just a safe search. So let's go
-
break right into enterprise security, and
-
let's talk about that.
-
So I come into enterprise security. We're
-
going to show what is already outcomes
-
out of the box. So if
I go 'configure', I'm
-
in my Enterprise security
and I come into...
-
'content', and I go to
'content management',
-
these are all the knowledge objects that
-
come with enterprise security, and I'm
-
going to flip this to a
correlation search.
-
I click that...
-
we can see that it's going to come back
-
with lots and lots of results, 58 pages
-
plus of them and multiple to a page. You
-
can read this, so I'm just going to go
-
into the very first one. And this is
-
'abnormally high number of endpoint
-
changes by a user'. If I go and open this
-
up a little bit...
-
'detects an abnormally high number of
-
endpoint changes by user account as it
-
relate to restarts, audits, file system,
-
user, registry, notifications".
-
If I go into this...
-
I'm actually going to be able to see
-
the query. I'm not going to go explain it
-
because I can already tell you, it's
-
probably going to be written with lots
-
of data models and macros, but out of the
-
box, you can see: here's the query. And
-
it's basically...it's going to look at
-
your data model. You'll hear me talk
-
about data models. I've discussed data
-
model, but this is going to be the
-
endpoint data model, and it's going to be
-
looking at file systems for changes by the
-
user, it's going to do a bunch of other
-
things that ultimately it's going to
-
come back and say...if you meet a certain
-
criteria, and you can see that it's
-
actually using the machine learning
-
toolkit, so down here it's actually
-
building a threshold saying, what is the
-
normal amount of use of changes, and is
-
it jumping out of that at normal level.
-
It's really cool, put some really cool
-
analytics out there for you. You can just
-
use what they've got. What I love is I
-
don't want to...I hear, oh
-
well aren't correlation searches
-
attached to now frameworks? Well, you can
-
see the very first ones.
Sometimes they
-
are. But here, these are frameworks. I've
-
heard this in my own work,
oh, well they're
-
all mapped to the miter. Well,
-
are they? I'll just grab the very first
-
one, and...there's no miter technique
-
mapped. What should it be? Well, there's a
-
lot of things that could cause a miter
-
technique to...uh...if there's endpoint
-
changes, it could be many different types
-
of tact. Then I'll have it mapped. You
-
could come in here and you could map it,
-
we'll discuss that later, but point is, we
-
come down here...
-
make that go away, that's all...
-
we can see that it's looking back 1,450
-
minutes, and the latest time is zero. This
-
runs at five after the hour, that's how I
-
read that, five after the hour.
-
It's...if the results are greater than
-
zero, it groups by user and change type,
-
and we see that it creates...it does not
-
create a notable, it actually just
-
provides a risk analysis. And we'll
-
discuss risk analysis when we talk about
-
RBA. But the point is, you can make it do
-
a bunch of adaptive responses.
-
My job here is not to help you
-
understand every correlation search that
-
comes out of the box, I'm here to discuss
-
the part that most people don't know how
-
to do: create your own. So I've shown you
-
that you can go look through...there's
-
the documentation on Splunk, says 1400
-
plus, I don't know how they define what a
-
correlation search is. I'm going to tell
-
you that it's a lot. There's a
-
lot of them. And by default,
-
enterprise security is smart. They do
-
not come enabled. If I look at the
-
enabled correlation searches,
-
this is mine that I was using as I
-
started to help understand
-
enterprise security,
-
and these two were turned on
-
and this is for risk-based approach.
-
Other than that, there are no correlation
-
searches that come out of the box. Why?
-
Well, one, they don't want to turn
-
something on that doesn't fit your data
-
set; two, often you have
to tweak them, the
-
correlation search is great, but it's not
-
always going to be perfect for your
-
environment, and so as a general rule,
-
they're there as a guidance. Use them
-
when they make sense,
turn one on, test it,
-
see how it works.
If it doesn't, modify it,
-
and typically you'll just clone the
-
correlation search and build your own.
-
Anyway, enough talking about that, let's
-
talk about actually building my own
-
correlation search. So I'm in 'configure
-
content' and I went to
'content management'.
-
If I do 'create new content', that's how
-
I'm going to build one. And so we're
-
going to create a new content,
-
we're going to make a correlation search.
-
This is the way that I
do correlation searches.
-
That doesn't mean it's the way
-
that it has to be done,
but it's the way it works for me.
-
I'm going to call this, I
-
would hopefully have a much better name
-
for this, but I'm going to do 'YouTube
-
Correlation Search'.
-
Horrible name, because someone who comes
-
across this will have no idea what it's
-
for, but for me, when I need to purge
-
stuff from my system, it's really easy
-
and it stands out. So I'm going to put it
-
that way. Then here in my description, I'm
-
going to go...
-
'Grab one event from network logs'.
-
I'm not actually going to build
-
something that I'm looking for.
-
That's not the point of this video.
-
I'm just showing how
to build one, and I want
-
them to always fire, so I'm going to
-
fudge the numbers so that I always
-
get what I want. And so the first thing I
-
do is I don't try to build a search
-
through here. You can use a guided.
-
Guided's cool, it'll allow you it'll pick
-
data models, you can pick fields from it,
-
so if I enable the guided mode, you'll
-
see the data, it'll say alright, what
-
data model do you want to look at?
-
I might come down to 'network traffic'...
-
and what data set do I want to use...
-
'all traffic'. Do I want
to use 'summaries only'?
-
I'll discuss summaries only later
-
this is not the place for it. Time range.
-
And there is your basic query. I can run
-
the search and see how it looks.
-
Then I'm going to hit
-
'filter', and filter would be like
-
All.Traffic...
-
AllTraffic.destIP...
-
oh.
-
it's a boolean. Where...
-
and I actually don't know how to make
-
this work. All_Traffic...
-
I'd have to go look this up. Well that's
-
not very good...helpful
there. The point is,
-
I'm not actually going through the
-
guided search tour. I'm going to stay
-
right here with a manual query where I
-
can write it. It does have guided, again,
-
you got to understand exactly what
-
you're pulling. Guided is nice if you
-
know, follow the docs. I'm not here for
-
following the docs, I'm here to take a
-
query. This is my home network. I'm going
-
to look at the correlate logs. I'm going
-
to look at my correlate conn logs. I'm
-
going to say...where source IP is
-
192.1680.*. That is only so I make
-
sure that I'm looking at a specific
-
subnet section of my network. This is
-
primarily my network designed for doing
-
Splunk videos, and so this isn't my...
-
this is part of my home network, but it's
-
a subnet on my network that I use for
-
testing, pen testing, setup of systems
-
that I tear up and pick up and tear down,
-
and so I just want to know what they're
-
doing. And so I wanted the source IP
-
Maybe you don't want the source IP.
-
All I really cared about though, is I just
-
wanted this, because ultimately, later
-
down, I'm going to do inventory, and I'm
-
going to have a very simple inventory of
-
that subnet, and so I only want IPs that
-
at least one piece of the data
-
ties to my inventory. And so, as you can
-
see, this here has nothing to do with my
-
network, but this one does. And I'm going
-
to do a head 1, because I don't
-
want lots and lots of results.
-
Basically, I want a query
-
and I'm always going to return one
-
result...and that's what I built.
-
This isn't bad. This isn't actually a
-
known bad, I just wanted data to come
-
back, so then I can put other stuff on it.
-
I'm doing this as a demo for you guys to
-
understand how
-
to build a query. You would want to build
-
a query that actually is looking for
-
something malicious. Right now, I just
-
want a query to return a result, so that
-
I can...when I do my next video about
-
triage and the triage system, there are
-
actually tickets coming in. If I write a
-
query that's looking for bad, well, that
-
bad better be occurring on my network or
-
it's not going to fire. And so it's a lot
-
harder to troubleshoot if the thing is
-
working if you're building queries right,
-
If you build something that isn't...
-
you hope to not actually
see on your network.
-
So I actually hope to see
correlate conn logs.
-
I sure hope so. That means my
-
network has traffic. Anyway, and I'm just
-
going to put the head 1, because I only
-
want it to create one alert. If I let it
-
come back, it's every event that comes
-
back in here would be a notable alert.
-
I don't want my triage
system getting inundated.
-
So I'm just going to do this head 1.
-
Now I'm going to map it. I'm going to go
-
to miter, and I'm going to
-
put in some
-
tickets. So I'm going to go 'T1143'. I
-
actually can't remember what all these
-
mean off the top of my head. You can go
-
look them up. I'm going to say this, and
-
this has note, no bases whatsoever, but
-
again, these videos are
-
going to build on themselves. And so I'm
-
building these miter attacks so when I
-
go to the RBA section of this video
-
playlist, you'll see how it maps all the
-
different techniques together. And so I'm
-
going to put this down here,
-
and actually, because
I want this to work on
-
my system, I'm going to actually do...
-
I want it always to be 0.128,
-
that way I'm only going to get alerts
-
that are relating to this system.
-
That means my risk-based
approach will cross
-
the threshold. That actually makes a lot
-
more sense for me. I'll explain that when
-
we actually get to RBA, but basically, I'm
-
going to give me...
give me an alert every time
-
0.128 is the source of network traffic.
-
And that should fire off
quite frequently.
-
Ignore the picture up in the top.
-
We're just going to move on.
Head 1.
-
My videos are done rendering.
Anyway, so I'm going
-
to map it to these TTPs. Again, this is
-
all for demo purposes, so I just pick
-
some TTPs, and I can come down here and
-
I can put a confidence score,
an impact score,
-
contacts, analytics, we're just gonna
-
leave that alone for now.
-
I can create my own framework
-
And now here it's going to say
-
how far back do I want to look? Do I
-
want to look back 24 hours?
-
I could, but I know how often
-
my logs are firing. I'm going
-
to look back one hour. Doesn't really
-
matter, because I'm just grabbing head 1.
-
And...I have...I probably get
-
hundreds of events every...probably
-
thousands of events every hour
-
on this particular subnet. And so it's
-
not going to be a problem getting data.
-
I'm going to go look back one hour to
-
now. And how often do I want it to run?
-
You know what? I'm going to let it run
-
every five minutes. And that's going to
-
be important so that I actually have
-
events. And that'll work.
-
I'm going to come down here,
and I'm going to say do I
-
want it to run as real time or
-
continuous. We'll just
leave it at its default.
-
What's my scheduling window? Again,
-
these are...I'm not going over these, this
-
is just basically how you want to run
-
your times. I'm going to run this
-
every five minutes. Schedule priorities
-
in case there's conflicts. Hopefully with
-
your enterprise security, you actually do
-
not overload your system so these become
-
a big deal.
-
Trigger conditions, number of results
-
greater than zero, that's always going to
-
be the case because I'm getting back one.
-
But if I was doing this, if I want to do
-
thresholds I could make it...the thing has
-
to occur at least 10 times, or 15 times,
-
or whatever. Then windows durations
-
filled to group by...that's it. That's all
-
I want to deal with. Really, the only
-
places I put around with this is I wrote
-
a query in the most basic format to get
-
your correlation searches going. Pick a
-
search. I would tie it to an annotation,
-
but you don't have to, not required.
-
You come down, here pick your time window,
-
these three boxes, how far back do you
-
want to look, latest time, earliest time,
-
and your cron schedule, and then you
-
really don't have to touch anything else,
-
except this 'add adaptive response'. I'm
-
going to come and modify this in a
-
minute. There is, when we talk about RBA,
-
I'm going to put a risk analysis. For the
-
sake of keeping this simple, I am only
-
going to do
-
notables for now. So I'm going to come in
-
here and I'm going to click a notable.
-
A notable is an alert that goes to
-
your triage system.
-
Gonna go...'YouTube
-
notable'. Give it a description.
-
I can actually use...
-
variable substitution, so I'm going to do
-
'Alert for $src_Ip'.
-
I need to make sure that field comes
-
back, and this does have a source IP, so I
-
can use it, and you just call it like you
-
do in with the dollar sign on both sides
-
of a variable, and that'll be dynamic. And
-
so my description will come back with
-
this. And just because I
-
want to, what if I...yeah, we'll just
-
leave it at that.
-
YouTube notable security domain. There
-
are a bunch of domains. This is dealing
-
with access areas, that would be
-
authentication, endpoint, a lot of your
-
host logs, network logs, threat, identity,
-
and audit. And so those are the six areas
-
Splunk has as security domains. We'll
-
just leave it as a...
we'll put as a network.
-
In the network domain, I'm going to put
-
the severity
-
as low.
-
And default owner, I can put in these,
-
I can leave it unassigned.
-
I'm going to put it as
unassigned to start with.
-
Again, you don't have to.
-
Default status, I'm going to
put it as unassigned.
-
And I could put a drill down search in
-
there, and let's do that.
-
We're going to take this very same query.
-
Just to keep things really simple, one of
-
the very first drill downs
I want to put in there
-
is the actual query
-
that created this log.
-
But in this case, I'm not going to put
-
head 1, I'm going to put...I'm going to
-
take the head out.
-
Oh, it looks like I've lost the 128 on
-
there. 128.
-
Make sure 128 is up here.
-
Yeah, it is. Okay, and I can choose...
-
the drill down search will be
-
'See...
-
what caused alert'.
-
There are other ways of doing this I'll
-
show, but I'm just going to
-
create a few add drill down searches.
-
And here, we're going to just do
-
'why does
-
this
-
drilldown exist'.
-
I just want to show
I can go search anything.
-
'Index equals internal'.
-
Why would you be looking at your
-
internal logs? It doesn't really matter.
-
Well, actually, let's just do this.
-
I'm going to put in '$src_ip$'.
-
So I'm basically looking in my internal
-
logs, and I'm going to see if I find that
-
IP address popping up. It's just kind
-
of an interesting way you can add
-
additional searches to your information.
-
So I'm going to be searching my internal
-
logs for the source IP.
-
And I hope you saw this earliest offset,
-
latest offset. You can change this, or you
-
can you can let it just go by its
-
default. Or you can say, for here I'm
-
going to go
-
plus, this is a earliest,
for example, one hour
-
and I'm going to leave
the other one as zero.
-
Does that make sense? So I hope
-
this helps. I can change my time.
-
It's basically going to look in this
-
window one hour back, based off of
-
the time this event occurred.
-
So this might actually look a little bit
-
in the future, this is
gonna look a little bit
-
in the future.
-
It's going to use time in the back.
-
So let's go...
-
we're going to go one hour....
-
this is going to go one hour in the
-
future and one hour in the past.
-
Sounds good. I'm going to leave my
-
investigation profile alone. And these
-
are...extractions, and what it's
-
going to do is it's going to
-
identify identities, these are users
-
and stuff like that on your network.
-
Assets would be like IPs, and machines,
-
and files, and URLs that it might have
-
found. I'm going to...we got assets here.
-
Source dest.
-
Does my log, do my logs contain
-
source and dest?
-
Well, let's go look. Had one, do I actually
-
have a source and a dest here?
-
I have a source IP, but no source.
-
So I don't have the
field it's looking for to
-
be able to identify it. So what I need to
-
do is I need to come in here,
and I'm going to go
-
'$src_ip$',
-
except it's on identity.
-
The identity...it's an asset so I'm going,
-
to come in here and I'm going to go
-
'source IP'.
-
And just because we might
-
want to identify the other
-
machine in question.
-
We're going to put dest
IP in there as well.
-
So I'm going to have my source IP
-
and my destination IP.
-
They're going to be assets that are
-
extracted. And that's all I'm going to do.
-
I just want to make sure that
-
anything that might be identifiable in
-
these queries...not these queries,
-
the query up here. Let's call them out.
-
And I hope all this
will make more sense as
-
you actually see the stuff come back.
-
There's just a lot of capabilities here.
-
I can write steps if I want to, I can set
-
things up to, for example, send an
-
email, stream capture if you have
-
Splunk Stream, nbstat and it's...
-
You can make your system do a lot of
-
things. Like, I could have Splunk go ping
-
an IP address. You know what?
-
In a little bit, I'll actually show me
-
doing that. I can have it do a risk
-
analysis, run a scripts,
send a UBA, send a
-
Splunk mobile. Splunk mobile is really
-
cool. Now it's being sent to my phone. Add
-
thread intelligence from it, web hooks,
-
whatever. You have a lots of capabilities,
-
don't need to do it. The minimum you
-
need for a notable:
-
title, description,
-
you don't even need these drilldowns,
-
you can let this be set as default,
-
probably should pick a security domain,
-
and literally, that's it.
Make sure...it's a
-
lot more helpful if you can identify
-
your stuff coming back as identities and
-
sources. And I'm going to show you that
-
in the next video with workbenches and
-
stuff like that, but for the sake of this,
-
don't worry about it.
-
Just know that it's it's good if you
-
can call it out, but if you don't,
-
it's not like the query will break.
-
I'm going to hit save,
-
and I should have a
correlation search done.
-
Now I'm going to have to wait.
-
I probably just missed my window. It's
-
supposed to be kicking off
five minutes after the hour,
-
so I can almost guarantee that if I come
-
to incident review,
I will not find an alert
-
called 'YouTube notable'.
-
I'm gonna have to wait 'til five more
-
minutes go by, but let's go ahead and
-
check that. So I can come down, I can
-
refresh the page here, or I can refresh
-
the page here. But either way, that is not
-
the purpose of this video is to look at
-
the incidents coming in. Mine was to talk
-
about correlation searches and how to
-
make my own. I have set up a correlation
-
search, and so I've accomplished my task.
-
I'm gonna come see it here
-
with a configure content.
-
Configure content, content management.
-
My new correlation search is in here.
-
We can see that when I go
'all correlation search'...
-
And when you create them, by default,
-
they are enabled.
-
So if I come in here and I enable,
-
I can see 'YouTube correlation search'
for Lame Creations.
-
If I want to make any changes to it,
-
I just hit search. Now, that's interesting
-
that it doesn't say that
it's actually scheduled.
-
Alright, well, probably because it
-
hasn't run the very first time. Once it
-
runs, I should see
-
here the next schedule time.
-
But it's really easy,
-
just keep it under the enabled
-
and correlation searches.
-
So...yep, there it is.
-
Now I've got a time for
the next scheduled time.
-
stored in the Enterprise Security app.
-
What have we covered?
-
We've talked about correlation searches,
-
what they are, they're safe
-
searches that can be used to create
-
notables. Notables fill out tickets that
-
will go into a ticket triaging
-
system, which we will cover in the next
-
video in this playlist. Please look at
-
the link below, notice that this is a
-
playlist. Go ahead and join the playlist
-
and watch the videos. This is meant to be
-
a comprehensive training to help you
-
understand enterprise security.
-
Click that link. We have now....I've
-
shown you how to see the correlation
-
search that come out of the box, and I've
-
shown you how to create your own from
-
scratch. I hope this has been helpful, I
-
hope this helps you move from being a
-
lame analyst to a Splunk Ninja, that
-
you'll keep following, particularly this
-
playlist, watch the videos in it, and that
-
they're helpful.
-
Anyway, hope to see you around.