Platform Pricing Blog Research PALLADIUM Contact

MalCloud vs OpenCTI vs MISP: An Honest Comparison

A technical comparison of three self-hostable threat intelligence platforms — MalCloud, OpenCTI, and MISP — covering architecture, deployment, STIX support, unique capabilities, and where each one is strongest.

We built MalCloud because we thought the TIP market had a gap. But we’re not going to pretend the alternatives don’t exist or aren’t good. MISP and OpenCTI are serious platforms with large communities and real production deployments. If you’re evaluating self-hosted threat intelligence platforms, you should understand all three.

This comparison is based on MISP 2.5.x, OpenCTI 6.x (Filigran), and MalCloud 0.x (current). We’ll update it as things change.

Architecture

Architecture dictates everything downstream: deployment complexity, operational overhead, scaling characteristics, and failure modes.

MISP

MISP is a PHP application backed by MySQL (or MariaDB), with Redis for caching and session management. It’s a monolithic architecture — one application process handles the web UI, REST API, background workers, and feed synchronization. The codebase has been in active development since 2011.

MISP stack:
  - PHP 8.x (CakePHP framework)
  - MySQL 8.0 / MariaDB 10.x
  - Redis
  - Python (PyMISP workers, MISP modules)
  - Apache/Nginx

Deployment footprint: 1 server. A well-configured MISP instance runs on a single 4-core, 16GB VM. This is both its strength (simple) and limitation (vertical scaling only).

OpenCTI

OpenCTI is a Node.js/React application with a GraphQL API, backed by a complex service mesh. The architecture uses an event-driven model with RabbitMQ as the message broker.

OpenCTI stack:
  - Node.js (API + GraphQL)
  - React (Frontend)
  - Elasticsearch / OpenSearch (primary data store + search)
  - Redis (caching + locking)
  - RabbitMQ (message broker)
  - MinIO / S3 (file storage)
  - Connectors (Python workers, 100+ available)

Minimum deployment footprint: 5-7 containers. Elasticsearch alone wants 8GB+ of heap for meaningful datasets. A production OpenCTI deployment typically requires 32-64GB RAM and multiple cores. The docker-compose file in the OpenCTI repo defines 6-8 services before adding a single connector.

MalCloud

MalCloud uses Go microservices communicating over NATS, with PostgreSQL as the primary data store and object storage for samples and artifacts.

MalCloud stack:
  - Go (API + core services)
  - NATS (message bus)
  - PostgreSQL (primary data store)
  - Python (AI inference, extractors)
  - Next.js (frontend)

Deployment footprint: 3-4 containers for a minimal deployment. PostgreSQL handles both structured data and full-text search (using tsvector), avoiding the operational overhead of a separate search cluster. NATS is a single binary with minimal resource requirements.

Architecture comparison

MISPOpenCTIMalCloud
Core languagePHPNode.jsGo
Data storeMySQLElasticsearchPostgreSQL
Message busRedis (pub/sub)RabbitMQNATS
Min. RAM8 GB32 GB8 GB
Min. containers1 (monolith)5-73-4
Scaling modelVerticalHorizontal (Elastic cluster)Horizontal (NATS + service replicas)
API styleRESTGraphQLREST + gRPC

Deployment complexity

MISP: The installation process has a reputation. The INSTALL scripts are long and distribution-specific. MISP-docker has improved this significantly, but configuring feeds, taxonomies, galaxies, and warninglists still requires substantial post-install work. Expect 2-4 hours for a first deployment with feeds configured.

OpenCTI: Docker Compose gets you running, but tuning is non-trivial. Elasticsearch heap sizing, RabbitMQ queue management, and connector orchestration require familiarity with each component. Filigran offers a managed cloud version (OpenCTI Cloud, pricing on request) that eliminates this overhead. Expect 4-8 hours for a production-ready self-hosted deployment.

MalCloud: Single docker compose up with pre-configured defaults. MITRE ATT&CK data (20,285 objects), IOC feeds, and enrichment integrations are bootstrapped on first run. Target: under 30 minutes to a working deployment with data flowing.

STIX 2.1 support

STIX 2.1 (OASIS standard, published June 2021) is the lingua franca of threat intelligence. Support depth matters.

STIX capabilityMISPOpenCTIMalCloud
STIX 2.1 importVia misp-stix converterNativeNative
STIX 2.1 exportVia misp-stix converterNativeNative
STIX 2.1 as internal modelNo (MISP format internally)YesYes
Custom STIX objectsPartial (via galaxies)YesYes
STIX Relationship ObjectsPartial (via converter)FullFull
STIX GroupingsPartial (via converter)YesYes
STIX OpinionsYes (via converter, mapped to Analyst Data)YesPlanned

MISP predates STIX 2.1 and uses its own internal data model. Conversion is handled by the misp-stix library, which works but introduces edge cases — particularly with complex relationships and custom properties. MISP’s native model (Events, Attributes, Objects) is well-understood but not 1:1 mappable to STIX.

OpenCTI adopted STIX 2.1 as its internal data model from early versions. This makes it the most STIX-native platform of the three, with full support for all 18 STIX Domain Objects and 2 STIX Relationship Objects.

MalCloud also uses STIX 2.1 internally and stores indicators, threat actors, malware objects, and relationships as native STIX. Opinions and some observational objects are on the roadmap.

ATT&CK integration

All three platforms integrate with MITRE ATT&CK. The depth varies.

MISP: ATT&CK is available as a MISP Galaxy — a structured taxonomy that can be attached to events and attributes. The Galaxy approach provides tagging and basic relationship mapping. Recent versions have improved inter-galaxy relations, but the relationship depth is less than graph-native approaches like OpenCTI.

OpenCTI: Deep ATT&CK integration with full matrix visualization, technique-to-threat-actor mapping, and coverage heatmaps. OpenCTI imports the entire ATT&CK dataset as STIX objects and maintains the relationship graph. The ATT&CK matrix view is one of OpenCTI’s strongest UI features.

MalCloud: Ships with 20,285 pre-loaded ATT&CK objects including techniques, sub-techniques, mitigations, software, and groups. Indicators are automatically mapped to techniques during ingestion. The detection-as-code pipeline uses ATT&CK mappings to generate technique-specific Sigma rules.

Unique capabilities

MISP

OpenCTI

MalCloud

What MalCloud Does That Neither Platform Can

The features above cover table-stakes TIP functionality. The following four capabilities have no equivalent in OpenCTI or MISP today.

ZK Proof-of-Observation

When you observe an indicator in MalCloud, the platform generates a zk-SNARK proof binding that indicator to your organization and a timestamp. The proof is committed to a Merkle tree whose root is publicly verifiable. This gives you a cryptographic receipt proving you observed a threat before it was shared publicly — useful for insurance claims, regulatory compliance, and establishing priority in multi-party incident response.

Neither OpenCTI nor MISP can produce this. Both platforms record when data was imported, but neither can prove when an analyst first observed the underlying threat. Timestamps in both systems are mutable by database admins.

Real-time SIEM Push

MalCloud pushes enriched IOCs directly to your SIEM. Supported targets: Elasticsearch (ECS-native field mapping), Splunk (HEC), Microsoft Sentinel (Log Analytics API), Google Chronicle (UDM), and Syslog (CEF/LEEF). Median push latency is under 2 seconds from indicator creation to SIEM index.

OpenCTI requires either manual CSV/STIX export or building custom connectors to forward data to detection infrastructure. MISP supports feed-based sharing (pull model) and has a ZMQ pub/sub channel, but neither provides native, zero-config push to SIEM platforms with format-appropriate field mapping.

Collective Intelligence via Threat Pool

MalCloud’s Threat Pool aggregates sighting counts and sector velocity (how fast an indicator is spreading across industry verticals) across all participating tenants. Analysts see that an IP has been sighted 47 times across 12 organizations in the financial sector this week — without learning which organizations reported it. The underlying mechanism uses the same ZK primitives as Proof-of-Observation.

MISP’s sharing groups require revealing the indicators themselves to group members. Correlation works within a single MISP instance or across synchronized instances, but participants see each other’s data. OpenCTI has no collective signal mechanism — each deployment is an island unless you manually import from shared feeds.

Provenance-Tracked Graph Context

Every relationship, annotation, and enrichment action in MalCloud is recorded as an immutable provenance chain. When you export a subgraph, the export includes the full analyst reasoning trail: who linked which nodes, what evidence supported the link, and when each decision was made.

Exports from OpenCTI and MISP give you the graph structure (nodes and edges) but not the analyst context that makes the graph valuable. There is no built-in audit trail for why a relationship exists — only that it does. In MalCloud, the provenance chain is part of the data model, not a separate audit log.

Community and ecosystem

This is where honesty matters most, because community size is a genuine competitive advantage.

MISPOpenCTIMalCloud
GitHub stars~6,100~9,100Early stage
First release201120192025
Contributing orgsNATO, CIRCL, CERTs globallyFiligran (220+ employees)ThreatFight
Community feedsDozens (15 years of data)100+ connectors13 extractors
DocumentationExtensive (wiki + training)Good (docs + academy)Growing
Commercial supportCIRCL, communityFiligran (enterprise licenses)ThreatFight

MISP has the largest community and the deepest institutional adoption. It’s the default platform for CERTs and ISACs globally. OpenCTI has strong momentum and corporate backing — Filigran raised a $35M Series B in 2024. MalCloud is early-stage. We’re not pretending otherwise.

Pricing

MISPOpenCTIMalCloud
LicenseAGPL-3.0Apache 2.0 (EE features separate)Proprietary (free community tier)
Self-hosted costFree + your ops timeFree (community) / paid (enterprise features)Free tier + paid tiers
Managed cloudNo official optionFiligran Cloud (pricing on request)Planned
Enterprise supportCIRCL (EU-based)Filigran (pricing on request)Contact us

When to choose what

Choose MISP if:

Choose OpenCTI if:

Choose MalCloud if:

There’s no single best platform. There’s the best platform for your constraints. We built MalCloud because we think cryptographic provenance, real-time SIEM integration, privacy-preserving collective intelligence, and detection automation are the next frontier for threat intelligence platforms. If those aren’t your priorities, MISP and OpenCTI are excellent choices.

If you want to evaluate MalCloud against your requirements, get in touch or request a demo.

Interested in self-hosted threat intelligence?

Request a Briefing