Enrich IOC using SOAR with OpenCTI, VirusTotal and Shuffler

MALICIOUS FILE DETECTED

Splunk SOAR Playbook: Malicious File Detected

Automate triage, enrichment, containment, notification and recovery steps when a malicious file alert is received from an EDR.

Environment

Splunk All in one instance

Windows (Splunk UF)

Shuffler SOAR (Cloud or On premise)

OpenCTI (Cloud or On premise)

VirusTotal API

Slack

Playbook Trigger

Trigger:

  • Container created with label "Windows Mimikatz Binary Execution - Rule"

  • Source (Splunk Detection)

Input Fields:

  • Receive all fields in raw log trigger alert

  • Add annotation with rule detect mimikatz

  • Collect into index soc_risk

Artifact:

Playbook Workflow

Enrichment Phare

Block1: Hash Reputation check with OpenCTI

  • Action: file reputation

  • App: OpenCTI

  • Input: process_hash

  • Output: Indicator ID, Name, Observables, killChainPhases, OpenCTI Score, Tags, v.v.

Result raw log

Block2: Hash reputation check with VirusTotal

  • Action: file reputation

  • App: VirusTotal Call API

  • Input: process_hash

  • Output: Name, Type, Malicious, Threat, Url search, v.v.

Notification Phare

Block3: Notify Team

  • Action: Send Information

  • App: Slack

  • Input: Summary of alert, Splunk result, OpenCTI result, VT result.

Verification Phare (Advance)

Block4: Sandbox Detonation

  • Action: detonate file

  • App: Any.run or sandbox integration

  • Input: process_hash

  • Output: Behavior analysis

Containment Phase (Advance)

Block5: Endpoint Isolation

  • Action: isolate endpoint

  • App: EDR

  • Input: host or dest

  • Output: Status=success

Block6: Kill Malicious Process

  • Action: terminate process malicious

  • App: EDR

  • Input: process_path or pid

  • Output: Confirmation

Diagram

Configure

Splunk Rule Detection

Setting
Value

Disabled

False

Cron Schedule

0 * * * * *

Earliest Time

-70m@m

Latest Time

-10m@m

Schedule Window

auto

Creates Notable

Yes

Rule Title

%name%

Rule Description

%description%

Create Trigger Action with Webhook search index=soc_risk

Setting
Value

Disabled

False

Cron Schedule

*/1 * * * *

Earliest Time

-70m@m

Latest Time

-10m@m

Schedule Window

auto

Creates Notable

Yes

Rule Title

%name%

Rule Description

%description%

Parse IOC

Using Shuffler tool Regex capture group

Input
Output Regex

OpenCTI body

VirusTotal Get a hash report

Slack Chat Message

Result after Workflow trigger alert and Enrichment IOC

Last updated