OpenCTI

OpenCTI is another open-sourced platform designed to provide organisations with the means to manage CTI through the storage, analysis, visualisation and presentation of threat campaigns, malware and IOCs.

  • Main objective is to create a comprehensive tool that allows users to capitalise on technical and non-technical information while developing relationships between each piece of information and its primary source.
  • The platform can use the MITRE ATT&CK framework to structure the data.
  • Additionally, it can be integrated with other threat intel tools such as MISP and TheHive.

OpenCTI Data Model

OpenCTI uses a variety of knowledge schemas in structuring data, the main one being the Structured Threat Information Expression (STIX2) standards.

STIX is a serialised and standardised language format used in threat intelligence exchange. It allows for the data to be implemented as entities and relationships, effectively tracing the origin of the provided information.

This data model is supported by how the platform’s architecture has been laid out. The image below gives an architectural structure.

Highlight services include:

  • GraphQL API: The API connects clients to the database and the messaging system.
  • Write workers: Python processes utilised to write queries asynchronously from the RabbitMQ messaging system.
  • Connectors: Another set of Python processes used to ingest, enrich or export data on the platform. These connectors provide the application with a robust network of integrated systems and frameworks to create threat intelligence relations and allow users to improve their defence tactics.
ClassDescriptionExamples
External Input ConnectorIngests information from external sourcesCVE, MISP, TheHive, MITRE
Stream ConnectorConsumes platform data streamHistory, Tanium
Internal Enrichment ConnectorTakes in new OpenCTI entities from user requestsObservables enrichment
Internal Import File ConnectorExtracts information from uploaded reportsPDFs, STIX2 Import
Internal Export File ConnectorExports information from OpenCTI into different file formatsCSV, STIX2 export, PDF