OpenCTI : La plateforme d’analyse de la cybermenace

La Threat Intelligence ou CTI, un domaine qui émerge encore dans les CERT permet la collecte et l’analyse d’informations liés aux cybermenaces. Des techniques dites d’OSINT sont utilisées pour le renseignement. Les enjeux sont d’identifier les techniques d’attaques et modes opératoires utilisés par les cybercriminels.
En outre, la CTI permet d’anticiper et se protéger au mieux en analysant des indicateurs qui permetttent de dégager des règles de détection.
Nous nous intéresserons à un outil open source dédié à l’analyse des cybermenaces. En parallèle si vous aimez la containerisation cet article vous plaira.

Qu’est ce qu’OpenCTI ?

OpenCTI est une solution libre qui permet de centraliser, partager et capitaliser les connaissances sur la cybermenance. Cette plateforme a pour avantage de permettre aux personnes qui ne sont pas techniques de comprendre rapidement les incidents et les groupes cybercriminels qui sévissent fortement.
OpenCTI fonctionne avec Docker. Il y a deux manières de l’installer avec docker-compose ou Docker Swarm. Dans cet article, j’utiliserais Docker Swarm car cette technologie est plus avancée et propose plus de fonctionnalités que docker-compose. Par exemple, la scalibilité des composantes OpenCTI seront plus simples à effectuer.

Easy Peasy with Docker !

Pour l’installation, OpenCTI sera containeriser sur Photon OS (eh oui on privilégie les systèmes optimisés pour VMware).
Tout d’abord, j’ai cloné le git avec les configurations e qui permettent de télécharger les images Docker de l’outil.
Vous pouvez aussi suivre cette documentation qui sera beaucoup plus précise sur les paramètres systèmes à passer au système d’exploitation :

Documentation pour installation OpenCTI

git clone https://github.com/OpenCTI-Platform/docker.git
cd docker

Pour lancer la plateforme OpenCTI, nous utiliserons la commande suivante qui permet de charger nos variables d’environnements dans le docker-compose.yml. Penser au préalable à transformer votre machine en node Docker Swarm (docker swarm init) :

env $(cat .env | grep ^[A-Z] | xargs) docker stack deploy --compose-file docker-compose.yml opencti

Services en cours d’éxécution dans OpenCTI

En effet, l’utilisation de Docker Swarm permet de scale (up/down) les containers et de fait améliorer les performances de votre instance. Une solution permettant de faciliter la gestion de la stack est Portainer.
Attention ! Il faut penser à modifier les ports 9000 dans le fichier de configuration Portainer car le service Minio s’éxécute lui aussi sur ce port. En fin de compte, OpenCTI s’éxécute très rapidement après 3 à 5 minutes.

Instance OpenCTI

Les connecteurs, l’échange d’infos en toute beauté

Les « Docker Lovers » votre heure est passée. Maintenant, nous passons à une partie assez intéressante, les connecteurs !
Les connecteurs sont des composantes essentiels car elles contribuent à l’enrichissement de l’outil OpenCTI.
Vous les trouverez ici :
https://github.com/OpenCTI-Platform/connectors
Les connecteurs sont des sortes de plugins qui vous permettent d’ajouter des fonctionnalités et renforcer la force de frappe de votre instance. En effet, vous avez des connecteurs type AlienVault, Malpedia, MITRE ou encore MISP qui sont très intéressants. Ils récupèrent des infos très récentes sur les threats actors et les attaques dans le cyber espace.
En effet, pour ajouter des connecteurs vous devez les ajouter dans le fichier docker-compose.yml.

   connector-malpedia:
    image: opencti/connector-malpedia:5.1.1
    environment:
      - OPENCTI_URL=http://opencti:8080
      - OPENCTI_TOKEN=${OPENCTI_ADMIN_TOKEN}
      - CONNECTOR_ID=${CONNECTOR_MPD_ID}
      - CONNECTOR_TYPE=EXTERNAL_IMPORT
      - CONNECTOR_NAME=Malpedia
      - CONNECTOR_SCOPE=malpedia
      - CONNECTOR_CONFIDENCE_LEVEL=30
      - CONNECTOR_UPDATE_EXISTING_DATA=false
      - CONNECTOR_LOG_LEVEL=info
      - MALPEDIA_AUTH_KEY= # Empty key only fetches TLP:WHITE information
      - MALPEDIA_INTERVAL_SEC=86400 # Run once every day
      - MALPEDIA_IMPORT_INTRUSION_SETS=true
      - MALPEDIA_IMPORT_YARA=true
      - MALPEDIA_CREATE_INDICATORS=true
      - MALPEDIA_CREATE_OBSERVABLES=true

  connector-alienvault:
    image: opencti/connector-alienvault:5.1.1
    environment:
      - OPENCTI_URL=http://opencti:8080
      - OPENCTI_TOKEN=${OPENCTI_ADMIN_TOKEN}
      - CONNECTOR_ID=${CONNECTOR_OTX_ID}
      - CONNECTOR_TYPE=EXTERNAL_IMPORT
      - CONNECTOR_NAME=AlienVault
      - CONNECTOR_SCOPE=alienvault
      - CONNECTOR_CONFIDENCE_LEVEL=15
      - CONNECTOR_UPDATE_EXISTING_DATA=false
      - CONNECTOR_LOG_LEVEL=info
      - ALIENVAULT_BASE_URL=https://otx.alienvault.com
      - ALIENVAULT_API_KEY=${OTX_TOKEN}
      - ALIENVAULT_TLP=White
      - ALIENVAULT_CREATE_OBSERVABLES=true
      - ALIENVAULT_CREATE_INDICATORS=true
      - ALIENVAULT_PULSE_START_TIMESTAMP=2021-05-01T00:00:00                  
      - ALIENVAULT_REPORT_TYPE=threat-report
      - ALIENVAULT_REPORT_STATUS=New
      - ALIENVAULT_GUESS_MALWARE=true                                        
      - ALIENVAULT_GUESS_CVE=true                                            
      - ALIENVAULT_EXCLUDED_PULSE_INDICATOR_TYPES=FileHash-MD5,FileHash-SHA1
      - ALIENVAULT_INTERVAL_SEC=1800
    restart: always

Comment ajouter MISP à OpenCTI ?

MISP (Malware Information Sharing Platform) est une plateforme qui permet la collecte, la distribution et le partage d’indicateurs grâce aux incidents de sécurité et à l’analyse de malwares. Avec cette plateforme, il est possible d’alimenter OpenCTI. Je prendrais ce paragraphe dédié à MISP comme exemple. Pour synchroniser MISP et OpenCTI il faut juste intégrer le docker-compose.yml de MISP à notre fichier global de configuration.
Tout d’abord, la plateforme MISP ressemble à ceci :

MISP fonctionne avec des flux où il récupère des informations pertinentes qui déclenchent des évènements. Ces évènements seront récupérés par OpenCTI afin de les intégrer dans sa banque d’informations.
Par ailleurs,pour permettre à OpenCTI de se connecter à MISP il faut lui fournir la clé d’API de l’instance qu’on retrouve dans « Events Actions -> Automation ».

Pour conclure, OpenCTI est un outil puissant et modulable qui permet de centraliser les infos de Threat Intelligence et de les exploiter un maximum en y ajoutant ses analyses. Cet outil permet aussi de comprendre rapidement les enjeux d’anticiper en se renseignant sur les menaces pour se protéger au mieux.

Laisser un commentaire

En savoir plus sur p0sql

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Poursuivre la lecture