IOC Export Guide

SkillFiles & storage

IOC export formats and procedures. CSV, STIX 2.1, OpenIOC, MISP. Handles format conversion and packaging.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the IOC Export Guide skill

What this skill tells your AI

The instructions your AI receives, as published by liberty91ltd/cti-skills in skills/ioc-export/SKILL.md and read by ahel’s review.

Supported Export Formats

CSV

Standard tabular format. Most broadly compatible.

indicator,type,first_seen,last_seen,confidence,tlp,source,context,mitre_attack,tags
203.0.113.42,ipv4-addr,2026-01-15,2026-03-20,85,GREEN,"Mandiant report MAL-2026-001",C2 server for SUNBURST variant,T1071.001,"apt29;sunburst"
evil.example.com,domain-name,2026-02-01,2026-03-20,70,GREEN,"Internal analysis","Phishing landing page",T1566.002,"phishing;apt29"

Column definitions:

ColumnRequiredDescription
indicatorYesThe IOC value
typeYesSTIX indicator type: ipv4-addr, ipv6-addr, domain-name, url, file:hashes.SHA-256, file:hashes.MD5, email-addr
first_seenYesISO date first observed
last_seenNoISO date last observed
confidenceYes0-100 MISP confidence score
tlpYesTLP marking
sourceYesSource description
contextNoWhat the IOC represents (C2, phishing, etc.)
mitre_attackNoATT&CK technique IDs
tagsNoSemicolon-separated tags

STIX 2.1 Bundle

See stix-bundle skill for full specification.

OpenIOC (XML)

Mandiant's legacy IOC format. Still used by some tools.

<?xml version="1.0" encoding="utf-8"?>
<ioc xmlns="http://schemas.mandiant.com/2010/ioc" id="[UUID]" last-modified="YYYY-MM-DDT00:00:00">
  <short_description>IOC Title</short_description>
  <description>Description</description>
  <authored_by>CTI Platform</authored_by>
  <authored_date>YYYY-MM-DDT00:00:00</authored_date>
  <definition>
    <Indicator operator="OR" id="[UUID]">
      <IndicatorItem id="[UUID]" condition="is">
        <Context document="Network" search="Network/DNS" type="mir"/>
        <Content type="string">evil.example.com</Content>
      </IndicatorItem>
      <IndicatorItem id="[UUID]" condition="is">
        <Context document="FileItem" search="FileItem/Md5sum" type="mir"/>
        <Content type="md5">abc123...</Content>
      </IndicatorItem>
    </Indicator>
  </definition>
</ioc>

MISP Format (JSON)

For import into MISP instances.

{
  "Event": {
    "info": "IOC collection: [context]",
    "threat_level_id": "2",
    "analysis": "2",
    "distribution": "1",
    "Tag": [
      {"name": "tlp:green"},
      {"name": "misp-galaxy:mitre-attack-pattern=\"Phishing - T1566\""}
    ],
    "Attribute": [
      {
        "type": "ip-dst",
        "category": "Network activity",
        "value": "203.0.113.42",
        "to_ids": true,
        "comment": "C2 server"
      },
      {
        "type": "domain",
        "category": "Network activity",
        "value": "evil.example.com",
        "to_ids": true,
        "comment": "Phishing landing page"
      }
    ]
  }
}

MISP Attribute Types

IOC TypeMISP attribute typeCategory
IPv4 addressip-dst / ip-srcNetwork activity
IPv6 addressip-dst / ip-srcNetwork activity
DomaindomainNetwork activity
URLurlNetwork activity
Email addressemail-srcPayload delivery
SHA-256 hashsha256Payload delivery
MD5 hashmd5Payload delivery
SHA-1 hashsha1Payload delivery
FilenamefilenamePayload delivery
Registry keyregkeyPersistence mechanism
MutexmutexArtifacts dropped

Export Workflow

  1. Collect all IOCs from the investigation/analysis
  2. Deduplicate (same indicator + same type = one entry)
  3. Validate format (IP regex, hash length, URL format)
  4. Apply TLP marking (inherit from source or set explicitly)
  5. Set confidence scores (per confidence-levels skill)
  6. Generate export in requested format
  7. Write to data/exports/YYYY-MM-DD-<context>.<format>

Output Location

Write exports to: data/exports/

  • CSV: YYYY-MM-DD-<context>.csv
  • STIX: data/stix-bundles/YYYY-MM-DD-<context>.json
  • OpenIOC: YYYY-MM-DD-<context>.ioc
  • MISP: YYYY-MM-DD-<context>.misp.json

Signals

GitHub stars
22
Forks
9
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
ioc-export
Source
github.com/liberty91ltd/cti-skills