
Introduction
Aujourd’hui, on va parler d’OpenCTI, une plateforme open source super utile pour gérer les renseignements sur les menaces. Elle permet aux organisations de collecter, analyser, et partager des infos sur les menaces de manière hyper efficace. Avec OpenCTI, vous pouvez centraliser vos données, créer des liens entre les indicateurs de compromission, analyser les activités malveillantes, générer des rapports, et bien plus encore !
Comment ça marche ?

Structure des Données
OpenCTI utilise un schéma de connaissances basé sur les normes STIX2. Ça permet de modéliser et de visualiser des relations complexes entre différentes entités, comme les acteurs de menaces, les campagnes, et les incidents.
Architecture
La plateforme est conçue comme une application web moderne, avec une API GraphQL et une interface utilisateur super intuitive. Vous pouvez même l’intégrer avec d’autres outils comme MISP, TheHive, MITRE ATT&CK, etc.
Fonctionnalités
OpenCTI te permet de tirer parti des données pour en extraire des connaissances précieuses. Les analystes peuvent découvrir de nouvelles relations à partir des données existantes, ce qui facilite la compréhension et la représentation de ces infos.
Installation d’OpenCTI avec Docker
Prérequis
Avant de commencer, assurez-vous d’avoir :
- Une machine virtuelle Ubuntu avec au moins 8 Go de RAM, 100 Go d’espace disque et un CPU à 6 cœurs.
- Une connexion Internet.
Installer Docker et Docker Compose
Sur Linux, utiliser la commande suivante pour installer Docker Compose :
sudo apt install docker-compose
Sur Windows et MacOS, télécharger la version de Docker Desktop adaptée à ton système d’exploitation.
Cloner le Dépôt Docker
Créer un répertoire pour l’application et clone le dépôt Docker d’OpenCTI :
mkdir -p /path/to/your/app && cd /path/to/your/app
git clone https://github.com/OpenCTI-Platform/docker.git
cd docker
Configurer l’Environnement
Avant de lancer la commande docker-compose
, configurer le fichier docker-compose.yml
. Par défaut, ce fichier utilise des variables d’environnement disponibles dans le fichier .env.sample
.
Vous pouvez renommer le fichier .env.sample
en .env
et y entrer les valeurs appropriées, ou éditer directement le fichier docker-compose.yml
avec les valeurs de ton environnement.
Configurer les Paramètres Statiques
Modifier les champs 'changeme'
par vos paramètres :
OPENCTI_ADMIN_EMAIL=admin@opencti.io
OPENCTI_ADMIN_PASSWORD=changeme
OPENCTI_ADMIN_TOKEN=ChangeMe_UUIDv4
OPENCTI_BASE_URL=http://localhost:8080
OPENCTI_HEALTHCHECK_ACCESS_KEY=changeme
MINIO_ROOT_USER=opencti
MINIO_ROOT_PASSWORD=changeme
RABBITMQ_DEFAULT_USER=opencti
RABBITMQ_DEFAULT_PASS=changeme
CONNECTOR_EXPORT_FILE_STIX_ID=dd817c8b-abae-460a-9ebc-97b1551e70e6
CONNECTOR_EXPORT_FILE_CSV_ID=7ba187fb-fde8-4063-92b5-c3da34060dd7
CONNECTOR_EXPORT_FILE_TXT_ID=ca715d9c-bd64-4351-91db-33a8d728a58b
CONNECTOR_IMPORT_FILE_STIX_ID=72327164-0b35-482b-b5d6-a5a3f76b845f
CONNECTOR_IMPORT_DOCUMENT_ID=c3970f8a-ce4b-4497-a381-20b7256f56f0
CONNECTOR_ANALYSIS_ID=4dffd77c-ec11-4abe-bca7-fd997f79fa36
SMTP_HOSTNAME=localhost
ELASTIC_MEMORY_SIZE=4G
Pour générer des tokens UUIDv4, vous pouvez utiliser ce site :

Configurer les Paramètres Système
Comme OpenCTI dépend d’ElasticSearch, vous devez définir vm.max_map_count
avant de lancer les conteneurs :
sudo sysctl -w vm.max_map_count=1048575
Pour rendre ce paramètre persistant, ajouter la ligne suivante à la fin de ton fichier /etc/sysctl.conf
:
vm.max_map_count=1048575
Lancer OpenCTI
Après avoir configuré votre fichier .env
, lancer docker-compose
en mode détaché :
sudo systemctl start docker.service
docker-compose up -d
Pour une meilleure expérience avec Docker, je recommande d’utiliser la fonctionnalité Docker stack. Portainer est un super outil pour ça !
Accéder à OpenCTI
Une fois l’installation terminée, vous pouvez accéder à OpenCTI en vous rendant sur http://localhost:8080 et en vous connectant avec les identifiants configurés dans les variables d’environnement.
Installation des Connecteurs dans OpenCTI
Les connecteurs dans OpenCTI permettent d’importer, d’exporter et d’enrichir les données de la plateforme. Ils sont essentiels pour intégrer des sources externes de renseignement sur les menaces et pour automatiser certaines tâches. Voici comment installer et configurer des connecteurs dans OpenCTI en utilisant le fichier docker-compose.yml
.
Accéder au Fichier docker-compose.yml
Le fichier docker-compose.yml
se trouve généralement dans le répertoire du dépôt Docker d’OpenCTI. Ouvrer ce fichier avec un éditeur de texte.
Ajouter la Configuration du Connecteur
Pour ajouter un connecteur, vous devez ajouter une nouvelle section de service dans le fichier docker-compose.yml
. Voici un exemple de configuration pour le connecteur AlienVault OTX :
services:
connector-alienvault:
image: opencti/connector-alienvault:6.6.1
environment:
- OPENCTI_URL=http://localhost:8080
- OPENCTI_TOKEN=ChangeMe
- CONNECTOR_ID=ChangeMe
- CONNECTOR_NAME=AlienVault
- CONNECTOR_SCOPE=alienvault
- CONNECTOR_LOG_LEVEL=error
- ALIENVAULT_BASE_URL=https://otx.alienvault.com
- ALIENVAULT_API_KEY=ChangeMe
- ALIENVAULT_TLP=White
- ALIENVAULT_CREATE_OBSERVABLES=true
- ALIENVAULT_CREATE_INDICATORS=true
restart: always
Remplacer les valeurs ChangeMe
par les informations appropriées pour votre configuration.
Configurer les Variables d’Environnement
Assurez-vous que les variables d’environnement nécessaires sont définies. Vous pouvez les ajouter directement dans le fichier docker-compose.yml
ou les définir dans le fichier .env
. Je conseille la seconde solution pour plus de sécurité et un code propre.
Redémarrer les Services Docker
Après avoir ajouté la configuration du connecteur, enregistrer le fichier docker-compose.yml
et redémarrer les services Docker :
docker-compose down
docker-compose up -d
Vérifier le Connecteur
Une fois les services redémarrés, vous vérifier que le connecteur fonctionne correctement en accédant à l’interface web d’OpenCTI et en naviguant vers la section des connecteurs. Assurez-vous que le connecteur est en cours d’exécution et qu’il ne rencontre aucune erreur.

Exemple de Configuration de Connecteur
Voici un autre exemple de configuration pour le connecteur MISP :
services:
connector-misp:
image: opencti/connector-misp:6.6.4
environment:
- OPENCTI_URL=http://localhost:8080
- OPENCTI_TOKEN=ChangeMe
- CONNECTOR_ID=ChangeMe
- CONNECTOR_NAME=MISP
- CONNECTOR_SCOPE=misp
- CONNECTOR_LOG_LEVEL=error
- MISP_URL=http://localhost
- MISP_KEY=ChangeMe
- MISP_SSL_VERIFY=false
restart: always
Documentation et Ressources
Pour plus de détails sur la configuration des connecteurs, vous pouvez consulter la documentation officielle d’OpenCTI et le dépôt GitHub des connecteurs.
En suivant ces étapes, vous pourrez facilement ajouter et configurer des connecteurs dans OpenCTI pour enrichir et automatiser ta gestion des renseignements sur les menaces.
Cyberfishement 🐡