Skip to main content

Splunk

Overview

This document outlines the process for submitting network telemetry to AlphaSOC, including CIM-compliant DNS, HTTP, IP, and TLS events for scoring and retriving security alerts. By following this short guide, you'll be able to configure Network Behavior Analytics for Splunk to submit your logs to the AlphaSOC Analytics Engine for analysis. The system architecture is shown below.

Network Behavior Analytics Architecture

Product Installation

Pre-Installation Checklist

Before installing Network Behavior Analytics for Splunk, please ensure:

  1. You are indexing egress network events within your Splunk environment.
  2. Your Search Head can access api.alphasoc.net via HTTPS (TCP port 443).
  3. You have administrative privileges within Splunk.

DNS resolution events may be obtained from your name servers, full-packet capture (e.g. Zeek or Suricata), or infrastructure processing outbound HTTP requests (e.g. Blue Coat ProxySG or Zscaler). IP events are commonly logged by firewalls, but may be obtained from IDS logs, Splunk Stream, or other sources.


Installing Network Behavior Analytics for Splunk

Install the application within Splunk by browsing to Apps > Manage Apps > Browse More Apps, and searching for Network Behavior Analytics, or downloading the package from Splunkbase and uploading to your Search Head. Follow the on-screen installation steps and restart Splunk.

API Key Generation

The first time that you run Network Behavior Analytics for Splunk, the app will contact our licensing server to provision an API key. Upon generating a key, verify your email address to view alerts and use the dashboards. An activated API key is unrestricted for 30 days for evaluation purposes.

Adhere to the terms of service and generate an API key as follows:

API key generation

If you are an existing AlphaSOC customer, select I'm an existing user to reset or provide your AlphaSOC API key to complete installation. Please contact support@alphasoc.com if you run into any difficulties.

Configuring Data Providers

Once installed, click into the Data Location tab within the app to configure data providers.

If you already use a CIM compliant add-on to index your DNS, IP, and HTTP network events, the app will automatically load the events and further configuration is not required. If you are not using a CIM compliant add-on, one must be configured to load data for scoring.

On the left side of the screen, you will see tabs for the different telemetry types that the Splunk app can process (e.g. DNS, IP, HTTP, TLS). As you click into each, the app will display the data provider health and number of events. The autodetect feature will provide you with next steps if no data is found:

Autodetect DNS data

If things are configured correctly, the app will show that it is collecting events:

Data provider health

Note: To optimize the searches and make the application more responsive, you may explicitly specify the indexes (comma-delimited) containing your DNS, IP, and HTTP events within the respective Data Location boxes. Once it is defined, click Save.

If you run into difficulties configuring your data providers, please contact support@alphasoc.com with a screenshot showing the raw network event data within Splunk (including field names, event types, the sourcetype, and index) and provide a sample of the raw data (e.g. 2MB of firewall or network logs). We can quickly prepare a custom data provider add-on that uses CIM compliant field names for you.

Supported Data Types

Network Behavior Analytics for Splunk periodically runs the following searches every few minutes to gather data for analysis. $INDEX is index=* by default and may be changed via Settings > Data Location to define a particular index, and $FROM, $TO are internal markers which keep track of the processed data. Usually a time range defined by them is a few minutes. When first run, data indexed less than 30 minutes ago will be retrieved.

DHCP

search $INDEX tag="network" tag="session" tag="dhcp" _indextime > $FROM _indextime <= $TO
Field nameData typeExample valueMandatoryDescription
_timeinteger1585836536Original event timestamp
_indextimeinteger1585836628Time the event was indexed
dest_ip / destip address192.168.0.1IP address leased to the client
dest_nt_hosttextjohns-mbpHostname of the client initializing a lease
dest_mactextd6:75:9b:cb:78:06MAC address of the client acquiring a lease
usertextjohnsName of the user acquiring a lease
signature / msg_types / msdhcp_idtextdhcpackType of the DHCP operation
lease_durationinteger3600The duration of the DHCP lease, in seconds

DNS

search $INDEX tag="dns" tag="network" tag="resolution" _indextime > $FROM _indextime <= $TO
Field nameData typeExample valueMandatoryDescription
_timeinteger1585836536Original event timestamp
_indextimeinteger1585836628Time the event was indexed
src_ip / srcip address192.168.0.1Client IP of the source
src_portinteger45060Client port of the source
src_host / src_nt_hosttextjohns-mbpHostname of the source
src_mactextd6:75:9b:cb:78:06MAC address of the source
src_user / usertextjohnsName of the user generating event
queryfqdnwww.google.comDNS query
record_typerecord typeADNS query record type
reply_code / reply_code_idtext3DNS return code

HTTP

search $INDEX tag="web" _indextime > $FROM _indextime <= $TO
Field nameData typeExample valueMandatoryDescription
_timeinteger1585836536Original event timestamp
_indextimeinteger1585836628Time the event was indexed
src_ip / srcip address192.168.0.1Client IP of the source
src_portinteger45060Client port of the source
src_host / src_nt_hosttextjohns-mbpHostname of the source
src_mactextd6:75:9b:cb:78:06MAC address of the source
src_user / usertextjohnsName of the user generating event
url / siteurlhttps://google.com/searchURL of the requested HTTP resource
apptexttlsApplication protocol of the network traffic
actiontextallowedAction taken by the network device
statusinteger200HTTP response code
bytes_ininteger8910Bytes received by this source
bytes_out / bytesinteger32896Bytes transmitted by this source
http_content_typetextapplication/jsonContent-type of the requested HTTP resource
http_methodtextPOSTHTTP method
http_referrer / http_refererurlhttps://google.com/redirectHTTP referrer
http_user_agenttextMozilla/5.0 (X11; Linux x86_64)HTTP user agent

IP

search $INDEX tag="network" tag="communicate" _indextime > $FROM _indextime <= $TO
Field nameData typeExample valueMandatoryDescription
_timeinteger1585836536Original event timestamp
_indextimeinteger1585836628Time the event was indexed
src_ip / srcip address192.168.0.1Client IP of the source
src_portinteger45060Client port of the source
src_host / src_nt_hosttextjohns-mbpHostname of the source
src_mactextd6:75:9b:cb:78:06MAC address of the source
src_user / usertextjohnsName of the user generating event
dest_ip / destip address8.8.8.8Destination IP address of the network traffic
dest_portinteger443Destination port of the network traffic
transporttexttcpOSI layer 4 (transport) protocol of the network traffic
bytes_ininteger8910Bytes received by this source
bytes_out / bytesinteger32896Bytes transmitted by this source
apptexttlsApplication protocol of the network traffic
actiontextallowedAction taken by the network device
durationfloat3.8136Time for the completion of network event (in seconds)

TLS

search $INDEX tag="certificate" _indextime > $FROM _indextime <= $TO
Field nameData typeExample valueMandatoryDescription
_timeinteger1585836536Original event timestamp
_indextimeinteger1585836628Time the event was indexed
src_ip / srcip address192.168.0.1Client IP of the source
src_portinteger45060Client port of the source
src_host / src_nt_hosttextjohns-mbpHostname of the source
src_mactextd6:75:9b:cb:78:06MAC address of the source
src_user / usertextjohnsName of the user which generated this event
dest_ip / destip address8.8.8.8Destination IP address of the network traffic
dest_portnumber443Destination port of the network traffic
ssl_hash / ssl_cert_sha1sha10db6495611891de35650a18ad91002845f9cc6bcHash (sha1) of the certificate
ssl_issuertextCN=GTS CA,O=Google Trust Services,C=USCertificate issuer's RFC2253 Distinguished Name
ssl_subjecttextCN=motd.ubuntu.comCertificate subject using RFC2253 Distinguished Name
ssl_start_timeinteger1578079563Start date for the certificate's validity (in unix time)
ssl_end_timeinteger1588447563End date for the certificate's validity (in unix time)
ja3md50b2a5b08a7c44adaeaa1c0d29493c409Client fingerprint hash (md5)
ja3smd5254c31292ed05b84addc077fe6cee283Server fingerprint hash (md5)

VPN

search $INDEX tag="network" tag="session" tag="vpn" _indextime > $FROM _indextime <= $TO
Field nameData typeExample valueMandatoryDescription
_timeinteger1585836536Original event timestamp
_indextimeinteger1585836628Time the event was indexed
dest_ip / destip address192.168.0.1Internal IP address assigned to the client
dest_nt_hosttextjohns-mbpHostname of the client
dest_mactextd6:75:9b:cb:78:06MAC address of the client
usertextjohnsName of the user (client side)
tags[]textstart,vpnSplunk's tag field, type of operation