Il est possible que vous soyez déjà au courant, mais aujourd'hui, la sécurité de l'information est une préoccupation qui va au-delà des aspects techniques pour devenir un enjeu stratégique majeur. La veille et le renseignement sur les menaces, ou Threat Intelligence, jouent un rôle essentiel dans la protection contre les cyberattaques et les risques liés à la sécurité.
Il ne suffit plus aujourd’hui de se fier uniquement aux mesures de sécurité traditionnelles comme les pares-feux, les antivirus, les EDR, les XDR et autres SOC (pour les riches) 😉. La veille stratégique et le threat intelligence offrent une dimension supplémentaire de protection en permettant aux entreprises d'anticiper et de se préparer aux dangers avant qu'ils ne se concrétisent.
La veille
La veille, dans le contexte de la cybersécurité, consiste à surveiller en permanence l’environnement numérique pour détecter les signaux faibles de menaces potentielles. Cela inclut la surveillance des vulnérabilités connues, des activités suspectes sur les réseaux sociaux, des alertes de sécurité émises par des organismes spécialisés et des tendances émergentes dans le domaine de la cybersécurité.
En surveillant ces aspects, les entreprises peuvent obtenir des indices précieux sur les nouvelles méthodes d'attaque, les tendances des acteurs malveillants et les vulnérabilités qui pourraient être exploitées. Cette surveillance proactive permet de mettre en place des mesures de protection adaptées avant même qu’une menace ne se manifeste.
Threat Intelligence
Le threat intelligence va au-delà de la simple collecte d'informations ; il s'agit d'une analyse approfondie des données pour identifier les menaces spécifiques qui pourraient cibler une organisation. Cela implique de comprendre les tactiques, techniques et procédures (TTP) utilisées par les attaquants, ainsi que les motivations derrière leurs actions.
Avec une politique CTI bien structurée, les entreprises peuvent développer des stratégies de défense plus ciblées et réactives. Par exemple, en connaissant les méthodes courantes de phishing ou les techniques d'infiltration utilisées par les groupes de cybercriminels, les équipes de sécurité peuvent renforcer leurs formations et leurs systèmes pour contrer ces menaces spécifiques. Pour être réellement efficace, la veille et le CTI doivent être intégrés dans une approche globale de la cybersécurité. Cela signifie non seulement collecter et analyser les données, mais aussi les utiliser pour informer les politiques de sécurité, les plans de réponse aux incidents et les formations du personnel.
OpenCTI : Un outil clé dans la stratégie cyber
OpenCTI, qui signifie Open Cyber Threat Intelligence, est une plateforme open source qui permet aux organisations de structurer, d'organiser et de partager leur connaissance sur les cybermenaces. En centralisant et en visualisant ces informations, les professionnels de la cybersécurité peuvent rapidement identifier les tendances, les acteurs malveillants, les vulnérabilités exploitables et bien plus encore.
OpenCTI joue un rôle central dans le contexte de la veille et du renseignement sur les menaces, permettant aux organisations de renforcer leur posture de cybersécurité grâce à une approche collaborative et intégrée. Il se distingue particulièrement par sa faculté à se coupler avec divers outils et services. Que ce soit pour intégrer des sources de renseignements sur les menaces, des dispositifs de partage ou des systèmes analytiques, OpenCTI peut servir de pivot central pour un SOC ou pour un environnement cyber sécurisé.
Fonctionnalités clés d'OpenCTI
OpenCTI permet de centraliser les informations relatives aux menaces en un seul endroit. Les utilisateurs peuvent intégrer des données provenant de diverses sources, telles que des rapports de vulnérabilités, des alertes de sécurité, et des observations d'activités malveillantes. La plateforme supporte plusieurs formats de données, y compris STIX (Structured Threat Information Expression) et TAXII (Trusted Automated eXchange of Indicator Information), ce qui facilite l'importation et l'exportation des informations.
Organisation et corrélation des informations
La plateforme offre des fonctionnalités avancées pour organiser et corréler les données de threat intelligence. Les informations sont structurées en entités, telles que les incidents, les vulnérabilités, les techniques d'attaque, et les acteurs de menace. OpenCTI permet également de relier ces entités entre elles, offrant une vue contextuelle sur les menaces et facilitant l'analyse des campagnes d'attaques, des chaînes d'attaque et des tendances.
Visualisation des données
OpenCTI propose des outils de visualisation pour aider les analystes à interpréter les données de manière intuitive. Des tableaux de bord personnalisables et des graphiques dynamiques permettent de visualiser les relations entre les différentes entités de menace, d'analyser les tendances émergentes et de suivre l'évolution des campagnes d'attaques. Cette visualisation est essentielle pour comprendre rapidement l'impact potentiel des menaces et prioriser les actions.
OpenCTI s'intègre facilement avec divers outils de sécurité, tels que les SIEM (Security Information and Event Management), les SOAR (Security Orchestration, Automation, and Response) et les solutions de gestion des vulnérabilités. Par exemple, les alertes et les informations sur les menaces peuvent être automatiquement transférées à un SIEM pour une analyse en temps réel, ou à un SOAR pour automatiser les réponses aux incidents. Cette intégration permet une réponse plus rapide et coordonnée face aux menaces.
Je veux l'installer chez moi!
Ok ;)
Installation de A à Z
Dans cette partie de l' article, je vous propose un guide pratique pour installer OpenCTI sur votre infrastructure, que ce soit pour un usage en lab, un SOC d’entreprise, ou dans une mission de consulting.
Objectifs de ce tutoriel
- Déployer OpenCTI avec Docker et Docker Compose
- Comprendre l’architecture des services nécessaires (Elasticsearch, Neo4j, MinIO, RabbitMQ…)
- Obtenir une instance fonctionnelle, prête à recevoir des connecteurs de veille
Prérequis
Avant de commencer, assurez-vous de disposer de :
- Un serveur Linux (Ubuntu 22.04, 8 CPU, 16 à 32 Go de RAM)
- Docker + Docker Compose installés
- Un accès root ou sudo
- Un peu de patience et une tasse de café ☕️
Je vais utiliser mon hyperviseur XCP-ng sur DELL PowerEDGE R710
La configuration de la VM Ubuntu 22.04 LTS
- Processeur: 8 vCpu
- RAM: 32 Go
- HDD SAS: 300 Go
Dell PowerEdge
Xen Orchestra d'XCP-ng
La consommation des ressources après le lancement des conteneurs
Architecture d’OpenCTI
OpenCTI repose sur une architecture distribuée composée de plusieurs services interconnectés :
- OpenCTI : L’interface principale (API + UI) accessible via un navigateur.
- Elasticsearch : Moteur de recherche pour l’indexation rapide des données.
- Neo4j : Base de données orientée graphe, cœur de la modélisation des relations CTI.
- MinIO : Stockage d’objets S3-compatible pour les fichiers bruts (imports, exports).
- RabbitMQ : File d’attente de messages pour orchestrer les traitements asynchrones.
- Redis : Cache utilisé pour optimiser les performances et le temps de réponse.
- Connecteurs : Scripts modulaires connectant OpenCTI à d'autres outils (VirusTotal, MISP, MITRE, etc.).
- Worker : Exécute les tâches de fond et les traitements lourds.
Ces composants sont tous orchestrés via Docker compose.
À présent, passons à l'installation!
La doc officielle: https://docs.opencti.io/latest/deployment/installation/#using-docker
sudo apt update && apt upgrade sudo apt install docker-compose
mkdir -p /opt/opencti && cd /opt/opencti git clone https://github.com/OpenCTI-Platform/docker.git cd docker
thread_pool.search.queue_size=5000
max_message_size = 536870912 consumer_timeout = 86400000
Dans le dossier /opt/opencti/docker veuillez modifier/paramétrer le fichier docker-compose.yml
docker-compose.yml
Ensuite, créez le fichier .env à coté du docker-compose.yml avec vos propres paramètres.
nano .env
OPENCTI_ADMIN_EMAIL=admin@opencti.io OPENCTI_ADMIN_PASSWORD=ChangeMePlease OPENCTI_ADMIN_TOKEN=$(cat /proc/sys/kernel/random/uuid) OPENCTI_BASE_URL=http://localhost:8080 OPENCTI_HEALTHCHECK_ACCESS_KEY=$(cat /proc/sys/kernel/random/uuid) MINIO_ROOT_USER=$(cat /proc/sys/kernel/random/uuid) MINIO_ROOT_PASSWORD=$(cat /proc/sys/kernel/random/uuid) RABBITMQ_DEFAULT_USER=guest RABBITMQ_DEFAULT_PASS=guest ELASTIC_MEMORY_SIZE=4G CONNECTOR_HISTORY_ID=$(cat /proc/sys/kernel/random/uuid) CONNECTOR_EXPORT_FILE_STIX_ID=$(cat /proc/sys/kernel/random/uuid) CONNECTOR_EXPORT_FILE_CSV_ID=$(cat /proc/sys/kernel/random/uuid) CONNECTOR_IMPORT_FILE_STIX_ID=$(cat /proc/sys/kernel/random/uuid) CONNECTOR_EXPORT_FILE_TXT_ID=$(cat /proc/sys/kernel/random/uuid) CONNECTOR_IMPORT_DOCUMENT_ID=$(cat /proc/sys/kernel/random/uuid) CONNECTOR_ANALYSIS_ID=$(cat /proc/sys/kernel/random/uuid) SMTP_HOSTNAME=localhost
Si vous souhaitez vous pouvez integrer vos tokens UUIDv4 en dur.
Pour générer les tokens UUIDv4: https://www.uuidgenerator.net/
Pour finir nous allons definir les parametres vm.max_map_count pour Elastic:
sudo sysctl -w vm.max_map_count=1048575 vm.max_map_count=1048575
Et nous pouvons lancer:
sudo systemctl start docker.service docker-compose up -d
En tapant l'adresse ip de notre serveur avec le port 8080 nous tombons sur le portail de notre OpenCTI tout neuf!
Portail OpenCTI
Maintenant nous devons ajouter les connecteurs externes pour enrichir automatiquement notre base de renseignement.
Ici vous avez tout un tas de connecteurs à intégrer dans votre fichier docker-compose.yml:
https://filigran.notion.site/OpenCTI-Ecosystem-868329e9fb734fca89692b2ed6087e76
Les connecteurs OpenCTI
Pour ce faire il suffit de récupérer la partie connector du connecteur souhaité et l’intégrer dans notre fichier docker-compose.yml et de relancer docker-compose up -d
Github officiel des connecteurs
Notre fichier docker-compose.yml
Relancer le docker:
docker-compose up -d
Dans la partie Données > Ingestion nous pouvons visualiser nos connecteurs:
Vous pouvez personnaliser les apparences dans Paramètres > Configuration pour ajouter votre logo ou changer les couleurs...
Et voila! Après quelques heures d'"ingestion", vous devrez voir votre dashboard se remplir...
Le nombre de documents et d'observables ingérés dépendra de vos workers, vos connecteurs et... du temps, il vous faudra plusieurs semaines pour avoir un OpenCTI bien rempli. ;)
Vous voilà désormais équipé d’une instance fonctionnelle d’OpenCTI, capable de centraliser, corréler et enrichir toutes vos informations de cybermenaces. Grâce à cette plateforme, vous posez les fondations d’une stratégie cyber proactive .
Mais ce n’est qu’un début : l’ajout de connecteurs (AlienVault, MISP, AbuseIPDB, Shodan etc.), l’intégration avec votre SIEM ou votre SOAR, et la définition de workflows analytiques feront passer votre veille CTI au niveau supérieur.
Continuez d’explorer, d’automatiser et de structurer vos données : le renseignement cyber est un levier stratégique majeur pour votre sécurité.
Bon déploiement et bonne chasse aux menaces !