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.
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)
MISP to SPLUNK (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)
MISP for SPLUNK: 2 Splunk alert actions are available
You may get fresh attributes from a MISP instance and save them under an index (for example index=misp). Then a dashboard can be build by using this template. The result should be similar to this video Thanks to @ran2 for sharing!
Fresh IOC from MISP > saved searches in Splunk
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
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)
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
custom commands
Splunk alert actions to update MISP
Each custome command and alert action comes with a dashboard to demonstrate how to use them.
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.
This app misp42splunk is licensed under the GNU Lesser General Public License v3.0.