How To Start Threat Hunting: The Beginner's Guide

Quickly observing your surroundings, orienting yourself based on those observations, and acting upon them is an essential skill — both in cybersecurity and in life.

Whenever you start hunting in a new environment, you’ll want to get used to it first, before you begin your hunt. So, in this tutorial, we explore the wild world of hunting threats in a new environment.

Whether you hunt daily or are just getting started, you’ll get some excellent threat hunting tips and tricks here. This article is organized into four sections:

For this Splunky tutorial, we're making the wild assumption that your data is already in Splunk. There are many articles written about getting data into Splunk, so this is focused on the analyst getting information back OUT.

(Part of our Threat Hunting with Splunk series, this article was originally written by John Stoner. We’ve updated it recently to maximize your value.)

Step 1. Starting the hunt process

When you're starting a hunt, it's important to have a clear objective in mind. To help figure out what and where you should be hunting, we suggest a couple paths forward:

If I can hypothesize, for example, that PowerShell is running on my Windows systems, that provides a focus for my hunt — that way I won’t get caught looking at other bright shiny objects.

Of course, if/when you do find other bright shiny objects during your hunt, take note of them and then use them to build hypotheses for subsequent hunts.

(Don't need a hands-on tutorial? Check out this threat hunting introduction.)

Step 2. Focusing your hunt

When I look at my Splunk console, I may have hundreds of data sources (“sourcetypes”) stretching over days, weeks, months or years.

One of the first steps I need to take is narrowing down this extensive scope of data and time to a more specific range or subset. That doesn’t mean I won’t need to pivot back to a broader search, but to be effective, I need to start narrowing my focus.

How do we focus? Let’s start with time.

Time

On the right side of my Splunk search bar, a drop-down known as the Time Picker allows me to set the time range that the search will run within. Clicking on the drop-down returns a number of time presets, as well as the ability to search specific data and time ranges. The use of Time Picker in searches is incredibly important during any hunt.

To effectively focus on specific data sources — sourcetypes — I need to understand what sourcetypes are available. To quickly determine the sourcetypes available, I can use the metadata command like this:

| metadata type=sourcetypes | sort - totalCount

My search provides a list of:

(For more information on this search, check out Using metadata & tstats for Threat Hunting.)

Data sources

Now that I have a hypothesis (or a question to answer), a time boundary, and sourcetypes, I can start digging into the data. What kind of data should I focus on? It will depend on the hypothesis or question being asked.

Network data sources can help me determine what data was sent and in which direction. Understanding if data is flowing to my cloud provider or from my servers to my workstations are important pieces of information to gather.

Network data sources can include:

Wire data can be seen in the form of Splunk for Stream which is broken out by network protocols including TCP, HTTP, SMTP, DNS and many more.

Your organization may not be running Splunk for Stream, but you may have PCAP data or Zeek, and these data sets can provide other valuable insight into the specific protocols operating on your network.

(Related reading: Using Splunk Stream for hunting.)

Context

In addition to log events, I want contextual data to better understand the network, systems and users. Here are other types of data you may want to consider:

Step 3. Searching in Splunk

Now that we have data, context, and the ability to narrow our time frame, let’s look at Splunk searches. I can execute unstructured or structured searches in Splunk and get results.

Unless I know precisely what I'm looking for when hunting, I want to initially make my search broad for the following reasons:

In this example, we're searching for events on August 23, 2017, and searching our Microsoft Sysmon data. (Yes, we recognize that this data is older — fortunately, the content and lessons learned here are still very relevant.)

sourcetype="xmlwineventlog:microsoft-windows-sysmon/operational"

My search returns over 40,000 events! But by using the fields available to me, I can narrow my search dramatically if I'm hunting for an activity that Amber Turing is performing. I can do this on multiple fields just by pointing and clicking!

sourcetype="xmlwineventlog:microsoft-windows-sysmon/operational" user="FROTHLY\\amber.turing"

From my results, I can see that Amber seems to be running tor.exe on her system. Interesting. Now, I can start using the awesome Splunk transforming commands to finesse my data.

What's a transforming command? These are commands that take the output of a search and transform the data output…:

Helpful command references

Splunk publishes a helpful command reference — which I always keep near — that you should leverage during your hunts! (If you aren’t familiar with the commands in Splunk and you generally use keywords for searching, no worries: this threat hunting series has you covered.)

That said, if I was stuck on a desert island with only two Splunk commands, I would start with stats and eval because they're so powerful. Here's an example of using both of them in concert with one another.

sourcetype="pan:traffic" (src_ip=10.0.2.101 OR dest_ip=10.0.2.101)
| stats count AS event_count sum(bytes_in) AS bytes_in sum(bytes_out) AS bytes_out sum(bytes) as bytes_total by src_ip dest_ip
| eval mb_in=round((bytes_in/1024/1024),2)  | eval mb_out=round((bytes_out/1024/1024),2) | eval mb_total=round((bytes_total/1024/1024),2)
| fields - bytes*
| sort - mb_total
| head 10

In this example, I want to see what communication paths existed between Amber’s system and other systems. Because I have contextual information, I know her IP address is 10.0.2.101 and so my initial search is looking at the firewall data with her IP address being either the source or destination:

I could stop there because I said those two commands were my favorites, but I'll throw a few extra commands in to show you what I can do from there:

With that, I have a top 10 talkers list between a system of interest and the rest of the world. Pretty cool, huh?

Step 4. Using OSINT & other resources

The last important component to keep in mind when going hunting is OSINT — open source intelligence. (Check out this quick introduction to OSINT from this hunting series.)

My favorite OSINT site starts with the letter G. Anyone? That’s right, it’s google.com.

Google is an often-underused weapon when hunting. I don’t know about you, but I just can’t seem to remember all 1000+ Windows Event codes, so being able to quickly search for this kind of information is invaluable.

After Google, here are other sites I find helpful:

Continuing the hunt

Wow, we covered a lot of new ground in a short time! If you're interested in hunting on some datasets to keep your skills sharp, try out some new techniques, or just practice your Splunk search skills, you can head to the Splunk GitHub and download BOTS datasets (for example botsv3) to use in your own sandbox environment.

And you’ve got plenty more tutorials in this series to explore, too.

As always, happy hunting!

Related Articles

Is Your Cyber Team Overwhelmed by System Alerts?
Security
4 Minute Read

Is Your Cyber Team Overwhelmed by System Alerts?

Wondering how to prevent alert fatigue and turnover within your cyber team? Learn how Splunk can help Cyber professionals with a more efficient way to view, assess, and prioritize system alerts before devoting time to investigations.
Solving User Monitoring Use Cases With Splunk Enterprise Security
Security
4 Minute Read

Solving User Monitoring Use Cases With Splunk Enterprise Security

We all know Splunk’s data platform is capable of delivering incredible analytics and insights at scale, but how do we tie that power with all of the security content and premium solutions for security that Splunk provides? I thought it would be a good idea to jot some thoughts down about some common high level security use cases becauseI get asked this question so much.
What Do Organizations Value Most in a SIEM/Security Analytics Provider? In a Word: Actionability
Security
2 Minute Read

What Do Organizations Value Most in a SIEM/Security Analytics Provider? In a Word: Actionability

According to 451 Research’s Voice of the Enterprise survey data, 64% say integration and correlation of threat intelligence is very important when selecting a SIEM vendor. Learn where Splunk Enterprise Security can give you actionable insights.
Hunting for Detections in Attack Data with Machine Learning
Security
3 Minute Read

Hunting for Detections in Attack Data with Machine Learning

Learn how to leverage the real-world and simulated attack data that Splunk's Threat Research team collected to use machine learning to discover attack activity and identify how to transform insights into detections.
Splunk SOAR: Anyone Can Automate
Security
2 Minute Read

Splunk SOAR: Anyone Can Automate

If you haven’t heard the news, Splunk Phantom is now Splunk SOAR – available both on-prem and in the cloud. Read on to find out what that means for you.
Threat Advisory: Telegram Crypto Botnet STRT-TA01
Security
6 Minute Read

Threat Advisory: Telegram Crypto Botnet STRT-TA01

The Splunk Threat Research Team (STRT) has detected the resurface of a Crypto Botnet using Telegram, a widely used messaging application that can create bots and execute code remotely. Learn more about the indicators of the botnet operation and use our pre-built and tested detections to find them in your environment.
Trickbot Detections: Threat Research Release, July 2021
Security
4 Minute Read

Trickbot Detections: Threat Research Release, July 2021

The Splunk Threat Research Team (STRT) addressed Trickbot in the July release. Trickbot is a very popular crimeware carrier (Trojan) associated with current campaigns.
Staff Picks for Splunk Security Reading July 2021
Security
2 Minute Read

Staff Picks for Splunk Security Reading July 2021

These monthly postings will feature the favorite security-centric presentations, white papers and customer case studies from various peeps in the Splunk (or not) security world that WE think everyone should read. If you would like to read other months, please take a peek at previous posts in the "Staff Picks" series!
Conti Threat Research Update and Detections
Security
5 Minute Read

Conti Threat Research Update and Detections

In this blog, the Splunk Threat Research team will show you how to use Splunk Attack Range to simulate cyber attacks from the Conti Ransomware group. It will also have pre-built detections that you can use to detect them in your environment.