Tools
T1598MISP
A comprehensive guide to MISP (Malware Information Sharing Platform) for SOC analysts — threat intel sharing, STIX import/export, feed management, correlation, and integrating MISP with SIEM and EDR.
View on Graph
What MISP Is and Why Analysts Use It
- MISP (Malware Information Sharing Platform) is an open-source threat intelligence platform designed to store, correlate, and share indicators of compromise, malware analysis reports, and threat actor information.
- MITRE ATT&CK maps threat intelligence sharing as a key enabler of
T1598(Threat Intel Gathering) defense — structured intelligence lets analysts pivot from individual IOCs to the broader threat landscape. - Unlike a simple CSV of hashes, MISP stores fully structured threat data: each event can contain multiple attributes (IOCs) with relationships, tags, and context. An event for “Emotet campaign” might include the file hash, delivery URL, C2 IP, email subject line, and MITRE ATT&CK technique — all linked together.
- MISP also handles correlation — if two analyst teams submit a report about the same IP address, MISP links those events together, revealing that both teams are tracking the same campaign.
Core MISP Concepts
Events and Attributes
| Concept | What It Is | Example |
|---|---|---|
| Event | A collection of related intelligence | ”Suspicious Emotet Activity — May 2026” |
| Attribute | A single indicator within an event | IP 5.5.5.5, SHA256 e3b0c44..., domain evil.com |
| Object | A structured set of attributes linked together | A file object containing hash, filename, size, and MIME type |
| Tag | A label applied to an event or attribute | tlp:red, PAP:AMBER, osint:source="virustotal" |
| Galaxy | A knowledge base linked to attributes | MITRE ATT&CK, Threat Actor, CVE, country |
| Correlation | Automatic linking of matching attributes across events | Two events mentioning IP 5.5.5.5 are correlated |
Attribute Types
| Type | Example |
|---|---|
ip-src (source IP) | 185.220.101.45 |
ip-dst (destination IP) | 203.0.113.5 |
domain | evil-c2.example.com |
hostname | cdn.evil-c2.example.com |
url | https://evil.com/payload.exe |
md5 | d41d8cd98f00b204e9800998ecf8427e |
sha1 | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
sha256 | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
filename | invoice.docm |
email-src | phisher@evil.com |
email-subject | RE: Invoice #12345 — Please Process |
mutex | Global\MSCTF.Asm.System |
regkey | HKCU\Software\Microsoft\Windows\CurrentVersion\Run\Malware |
yara | rule Emotet { meta: ... } |
Installing and Configuring MISP
Quick Install (Ubuntu/Debian)
# Official MISP installation script
wget -O /tmp/install.sh https://raw.githubusercontent.com/MISP/MISP/2.5/INSTALL/INSTALL.sh
sudo bash /tmp/install.sh
# Or use Docker for evaluation:
docker run -d -p 443:443 -p 80:80 harvarditsecurity/misp
Initial Configuration
After installation, the admin must:
- Create organization: Define your organization profile
- Create user accounts: Grant roles (admin, org admin, publisher, sync user, user)
- Configure sharing groups: Control who can see what (Your Organization, Connected Communities, All)
- Set up MISP feed feeds: Subscribe to external threat feeds
- Enable correlation: Turn on attribute correlation
- Configure sync: Link to other MISP instances if sharing with peers
User Roles
| Role | Permissions | Use Case |
|---|---|---|
| Admin | Full system control | MISP administrator |
| Org Admin | Manage org users and events | SOC manager |
| Publisher | Create, edit, publish events | Senior analyst creating intel reports |
| User | Create and edit own events, view published events | SOC analyst |
| Sync User | Automated sync with other MISP instances | Machine-to-machine sharing |
| Read Only | View published events only | Read-only consumers |
STIX Import and Export
MISP natively supports STIX 1.x and 2.x import and export. This is critical interoperability: threat intel feeds in STIX format can be ingested into MISP, and MISP events can be exported as STIX, YARA rules, Sigma rules, or other formats for use in detection tools.
Importing STIX
# Via CLI
./app/Console/cake stix2 import /path/to/stix2-bundle.json
# Via API
curl -X POST -H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"Feed":{"url":"https://example.com/feed.json","format":"stix2"}}' \
https://misp.internal.example.com/feeds/add
Exporting STIX
# Via MISP UI:
# Event Actions → Export → Download as STIX2
# Via API:
GET /events/stix/download/<event_id>
Mapping Between MISP and STIX
| STIX 2.1 Object | MISP Equivalent |
|---|---|
Indicator | Attribute with IDS flag set to true |
Attack Pattern | Galaxy Cluster (MITRE ATT&CK) |
Threat Actor | Galaxy Cluster (Threat Actor) |
Malware | Galaxy Cluster (Malware) |
Campaign | Event tag or galaxy |
Report | Event with distribution level |
Feed Management
MISP can ingest indicators from external feeds, automatically creating events and attributes. These feeds can also be exported as Snort and Suricata IDS rules for network-level detection.
Adding a Feed
Navigate to Sync Actions → List Feeds and enable available feeds, or add a custom feed:
| Feed Source | Type | Update Frequency | Quality |
|---|---|---|---|
| CIRCL | MISP feed | Daily | High quality, curated by CIRCL |
| Botvrij.eu | MISP feed | Daily | Open source, verified |
| AlienVault OTX (via import) | Custom | Variable | Moderate — community-dependent |
| Abuse.ch URLhaus | CSV | Every 5 minutes | High — real-time malware URLs |
| Abuse.ch MalwareBazaar | CSV | Every 5 minutes | High — hashes + metadata |
| Custom CSV feed | CSV | Configurable | As configured |
API — List Feeds
curl -H "Authorization: YOUR_API_KEY" \
https://misp.internal.example.com/feeds/index
Integrating MISP with SIEM and EDR
The value of MISP is realized when indicators make it into your detection tools.
Push to SIEM (Splunk Example)
#!/usr/bin/env python3
# misp-to-splunk.py — Export attributes with IDS flag to Splunk lookup file
import requests
import csv
MISP_URL = "https://misp.internal.example.com"
API_KEY = "YOUR_API_KEY"
LOOKUP_FILE = "/opt/splunk/etc/apps/threat-intel/lookups/misp_iocs.csv"
headers = {"Authorization": API_KEY, "Accept": "application/json"}
params = {"returnFormat": "csv", "type": join("ip-src", "ip-dst", "domain", "url", "sha256")}
response = requests.get(f"{MISP_URL}/attributes/restSearch", headers=headers, params=params)
with open(LOOKUP_FILE, "w") as f:
f.write(response.text)
Push to EDR via API
# misp-to-edr.py — Push IOCs to EDR blocklist
# This script fetches new MISP attributes and pushes them to the EDR API
import requests
MISP_API = "https://misp.internal.example.com/attributes/restSearch"
EDR_API = "https://edr.internal.example.com/api/v1/ioc/import"
API_KEY_MISP = "MISP_KEY"
API_KEY_EDR = "EDR_KEY"
headers_misp = {"Authorization": API_KEY_MISP, "Accept": "application/json"}
params = {"last": "1d", "type": ["ip-src", "ip-dst", "domain", "sha256"]}
# Fetch recent indicators
response = requests.get(MISP_API, headers=headers_misp, params=params)
indicators = response.json()
# Push to EDR
edr_payload = {"indicators": indicators["response"]["Attribute"]}
requests.post(EDR_API, json=edr_payload, headers={"Authorization": API_KEY_EDR})
Correlation — Finding Relationships
MISP’s correlation engine automatically links attributes across events. If two different events both contain the same IP address, MISP creates a correlation entry.
What Gets Correlated
| Attribute Type | Correlation Behaviour |
|---|---|
| IP addresses | Matched on exact value |
| Domains | Matched on exact value |
| Hashes | Matched on exact value |
| URLs | Matched on exact value |
| Email addresses | Matched on exact value |
| Mutex names | Matched on exact value |
| Registry keys | Matched on exact value |
Using Correlation in Investigations
- Find an IOC in your SIEM (e.g., IP
5.5.5.5) - Search MISP for that attribute
- View correlated events — see which other analysts or feeds have reported that IP
- Pivot to other attributes in those correlated events (other IPs, hashes, domains)
- Feed those pivots back to SIEM — repeat
Workflows for SOC Analysts
Daily Intel Review
| Step | Action | MISP Feature |
|---|---|---|
| 1 | Check for new events from trusted feeds | Feed dashboard |
| 2 | Review new events for relevance to your sector | Filter by tags, galaxy |
| 3 | Publish relevant events to your organization | Event publishing |
| 4 | Export indicators to SIEM lookup | API export |
| 5 | Create detection rules based on new TTPs | MITRE ATT&CK galaxy mapping |
Incident Response Workflow
| Phase | MISP Action |
|---|---|
| Detection | Search MISP for IOCs found during triage |
| Analysis | Pivot to correlated events — find related IOCs and TTPs |
| Containment | Export relevant IOCs to firewall, SIEM, EDR |
| Eradication | Check MISP for kill-chain information — ensure complete removal |
| Post-incident | Publish a new MISP event detailing the incident IOCs |
Related
- Threat Intelligence Fundamentals — detection and response for T1598 techniques
- Azure Sentinel — detection and response for T1654 techniques
- BloodHound — detection and response for T1087 techniques
