icon/x Created with Sketch.

Splunk Cookie Policy

We use our own and third-party cookies to provide you with a great online experience. We also use these cookies to improve our products and services, support our marketing campaigns, and advertise to you on our website and other websites. Some cookies may continue to collect information after you have left our website. Learn more (including how to update your settings) here.
Accept Cookie Policy

We are working on something new...

A Fresh New Splunkbase
We are designing a New Splunkbase to improve search and discoverability of apps. Check out our new and improved features like Categories and Collections. New Splunkbase is currently in preview mode, as it is under active development. We welcome you to navigate New Splunkbase and give us feedback.

Accept License Agreements

This app is provided by a third party and your right to use the app is in accordance with the license provided by that third-party licensor. Splunk is not responsible for any third-party apps and does not provide any warranty or support. If you have any questions, complaints or claims with respect to this app, please contact the licensor directly.

Thank You

Downloading MISP42
SHA256 checksum (misp42_432.tgz) b9c2b36dc6966edd14dc40774697523a976d110bcc51d7cf08d37005acd2bdbf SHA256 checksum (misp42_422.tgz) 301c7459403ab6d2d7fd7899ba86ed83b66e1506bdbdade72adfd6de89d67941
To install your download
For instructions specific to your download, click the Details tab after closing this window.

Flag As Inappropriate

splunk

MISP42

Splunk Cloud
Overview
Details
With MISP42, connect your Splunk search head with your MISP instance(s). It is a versatile TA that acts as a wrapper of MISP API to either collect MISP information into Splunk (custom commands) or push information from Splunk to MISP (alert actions).

Introduction

This TA allows interaction between your Splunk search head (cluster) and one or several MISP instance(s).
It is a versatile TA that acts as a wrapper of MISP API to either collect MISP information into Splunk (custom commands) or push information from Splunk to MISP (alert actions).
The TA is designed to be easy to install, set up and maintain using the Splunk GUI.

Quick Start

installation steps

IMPORTANT following first upgrade to version 4.1.0 or above, you need to configure the TA again (switch to new framework)

This app is designed to run on Splunk Search Head(s) on Linux plateforms (not tested on Windows but it could work)
1. Download TA from splunkbase splunkbase
2. Install the app on your Splunk Search Head(s): "Manage Apps" -> "Install app from file" and restart Splunk server
3. Launch the app (Manage Apps > misp42 > launch app) and go to Configuration menu
5. create at least one instance for example "default_misp".
* provide a name for example default_misp to follow the examples provided in this doc
* provide the url to your MISP instance (version > 2.4.117) starting with https://
* provide the authkey,
* check (recommended) the certificate of the MISP server,
* use (or not) a proxy for this instance (the proxy config panel is a dedicated tab)
* provide client certificate if required (and check the box to use it)
6. If you need several instances, create additional entries.
7. IMPORTANT: Role(s)/user(s) using this app must have the capability to "list_storage_passwords" (as API KEYs and proxy password are safely stored encrypted in local/passwords.conf).

Demo dashboards

The TA has one dashboard per custom command and per alert action.
Visit the dashboard and test the custom commands or alert actions.

Usage

MISP to SPLUNK: 6 custom commands:

| mispgetioc misp_instance=default_misp _params_ | ... gets MISP event attributes into Splunk search pipeline as lookup.
| mispgetevent misp_instance=default_misp _params_ | ... gets MISP events into Splunk search pipeline as lookup.
| mispcollect misp_instance=default_misp _params_ | ... gets MISP attributes or events into Splunk as events with complete mapping.
search ... |mispsearch misp_instance=default_misp field=myvalue | ... searches for matching attributes in MISP.
search ... |mispsight misp_instance=default_misp field=myvalue | ... gets sighting information for a specific value (note that if there is FP, only first hit is returned)
| misprest misp_instance=default_misp _params_ | ... MISP API wrapper. it supports all MISP existing API endpoints except uploading a file to MISP.

SPLUNK to MISP: 2 alert actions

  • one action to create new events or edit existing ones if you provide an eventid (or UUID). This allows to contribute to misp event(s) across several alert triggers.
  • one action to increment attribute sighting in a MISP instance.

Use Cases

Collect MISP attributes on Splunk index or lookup

To start getting data available on Splunk, you need to tune or clone one of the saved searches.
Each search starts with | mispgetioc misp_instance=<your_instance_name> and then you can write to an index with | collect or to a lookup with | outputlookup.
3 KV store are already created MISP_web, MISP_file and MISP_email.

Hunting in Splunk logs

Fresh IOC from MISP > saved searches in Splunk

Creating (or editing) events based on automated sandboxing

If you have output of analysis pushed to Splunk you may automate the creation of events
Log on sandboxing output > saved search to qualify, sanitize (dedup remove top Alexa, etc.) and prepare the table (misp_, fo_, eo_ and no_) > set a splunk alert to create event(s) in MISP * Only fields prefixed with misp_ (or fo_ for file objects, eo_ for email objects, no_ for domain-ip objects) are imported * NEW in >=3.2.2 additional fields can be added to MISP event by editing lookup/misp_datatypes.csv see this sample. This will improve compatibility with Enterprise Security Adaptative response * Advise: for objects, verify the name of the fields to be created Object definitions * If you provide an eventid, that event is updated with attributes and objects instead of creating a new one. WARNING apparently the API does create duplicate objects if you submit several time the same inputs.

Sighting in MISP based on Splunk alerts

Search for attributes values/uuids in Splunk > alert to increment sighting counters (standard,false positive,expiration) in MISP for those values/uuids

NEW in >=3.2.2: you can record the source of sighting in alert configuration (static string or inline field)

Saved searches and Enterprise Security App

Several saved searches are provided to easily create KV store lookups which can be used later. The default behaviour is to append new event attributes to the KV store but you may switch to replace it.
Based on those searches, you can easily created local CSV files and feed intel to Enterprise Security App.
you can also use this example (thanks @xg-simon for sharing):

| mispgetioc misp_instance=default_misp pipesplit=true  add_description=true category="External analysis,Financial fraud,Internal reference,Network activity,Other,Payload delivery,Payload installation,Payload type,Persistence mechanism,Person,Social network,Support Tool,Targeting data" last=90d to_ids=true geteventtag=true warning_list=true not_tags="osint:source-type=\"block-or-filter-list\""
| eval ip=coalesce(misp_ip_dst, misp_ip_src, misp_ip)
| eval domain=misp_domain
| eval src_user=coalesce(misp_email_src, misp_email_src_display_name)
| eval subject=misp_email_subject
| eval file_name=misp_filename
| eval file_hash=coalesce(misp_sha1, misp_sha256, misp_sha512, misp_md5, misp_ssdeep)
| eval url=coalesce(misp_url,misp_hostname)
| eval http_user_agent=misp_user_agent
| eval registry_value_name=misp_regkey
| eval registry_value_text=if(isnotnull(misp_regkey),misp_value,null)
| eval description = misp_description
| table domain,description,file_hash,file_name,http_user_agent,ip,registry_value_name,registry_value_text,src_user,subject,url,weight

Usage

  • custom commands
    • mispgetioc Generating command leveraging /attributes/restSearch endpoint
    • mispgetevent Generating command leveraging /events/restSearch endpoint
    • mispcollect Generating command for events leveraging /attributes/restSearch or /events/restSearch endpoints
    • misprest Generating command as a wrapper for MISP REST API.
    • mispsearch streaming command
    • mispsight streaming command
  • Splunk alert actions to update MISP

    • Alert to create MISP event(s) with an option to publish them at same time.
    • Alert for attribute sighting in MISP.
  • Each custome command and alert action comes with a dashboard to demonstrate how to use them.

    • mispgetioc for example for a generating command (first line of SPL) mispgetioc
    • mispsearch for example for a streaming command to enrich events mispsearch
    • misprest for example for the more versdatile wrapper of MISP API misprest
    • Create event for example for an alert action misp_alert_create_evennt

Credits

The creation of this app started from work done by https://github.com/xme/splunk/tree/master/getmispioc and the associated blog https://blog.rootshell.be/2017/10/31/splunk-custom-search-command-searching-misp-iocs/ for MISP interactions.

Licence

This app misp42 is licensed under the GNU Lesser General Public License v3.0.

Release Notes

Version 4.3.2
Jan. 4, 2024
Version 4.2.2
March 30, 2023

2023-03-30

  • fix issue on custom commands for parameters like json_request (bug introduced in 4.2.1)
  • fix issue with parameter date; it accepts now either one value "YYYY-mm-dd" (equivalent to from) or 2 values separated by a comma (,) (then from first value to second value). Relative ranges are supported "14d,7d"

Subscribe Share

Are you a developer?

As a Splunkbase app developer, you will have access to all Splunk development resources and receive a 10GB license to build an app that will help solve use cases for customers all over the world. Splunkbase has 1000+ apps from Splunk, our partners and our community. Find an app for most any data source and user need, or simply create your own with help from our developer portal.

Follow Us:
Splunk, Splunk>,Turn Data Into Doing, Data-to-Everything, and D2E are trademarks or registered trademarks of Splunk Inc. in the United States and other countries. All other brand names,product names,or trademarks belong to their respective owners.