Brancher CTI Forecast sur vos outils

Tous les guides utilisent votre clé API (visible dans Mon compte) à la place de VOTRE_CLE. Les URL qui contiennent la clé donnent accès à votre compte : ne les publiez pas.

pfSense et OPNsense · bloquer les IP malveillantes

  1. Firewall → Aliases, onglet URLs sur pfSense. Sur OPNsense, c'est Firewall → Aliases, puis +.
  2. Type : URL Table (IPs). Nom : CTI_FORECAST_IP.
  3. URL : https://ctiforecast.com/v1/blocklist.txt?type=ip&days=30&key=VOTRE_CLE
  4. Fréquence de mise à jour : 1 jour.
  5. Créez une règle de pare-feu Block sur l'interface WAN (et LAN en sortie) avec CTI_FORECAST_IP comme source ou destination.

Avec pfBlockerNG, ajoutez la même URL dans IP → IPv4, format Auto.

Wazuh · alerter quand une IP connue apparaît dans les logs

Wazuh compare les logs à des listes CDB au format clé:valeur. Ce script télécharge la liste et la convertit. Lancez-le chaque jour avec cron sur le manager :

#!/bin/sh
# /usr/local/bin/cti-forecast-wazuh.sh
curl -fsS "https://ctiforecast.com/v1/blocklist.txt?type=ip&days=30&key=VOTRE_CLE" \
  | grep -v '^#' | sed 's/$/:cti-forecast/' > /var/ossec/etc/lists/cti-forecast-ip.tmp \
  && mv /var/ossec/etc/lists/cti-forecast-ip.tmp /var/ossec/etc/lists/cti-forecast-ip \
  && chown wazuh:wazuh /var/ossec/etc/lists/cti-forecast-ip \
  && systemctl restart wazuh-manager

Déclarez la liste dans /var/ossec/etc/ossec.conf, dans la section <ruleset> :

<list>etc/lists/cti-forecast-ip</list>

Ajoutez ensuite une règle dans /var/ossec/etc/rules/local_rules.xml :

<group name="cti_forecast,">
  <rule id="100900" level="10">
    <if_group>web|sshd|firewall</if_group>
    <list field="srcip" lookup="address_match_key">etc/lists/cti-forecast-ip</list>
    <description>CTI Forecast : IP malveillante connue ($(srcip))</description>
  </rule>
</group>

MISP · ajouter CTI Forecast comme flux

  1. Sync Actions → Feeds → Add Feed.
  2. Source format : Freetext Parsed Feed. Input source : Network.
  3. URL : https://ctiforecast.com/v1/blocklist.txt?type=sha256&days=7&key=VOTRE_CLE
  4. Créez un flux par type (sha256, ip, domain…) pour que MISP range chaque valeur dans le bon attribut.
  5. Activez le flux et la mise en cache, puis Fetch and store all feed data.

OpenCTI, Microsoft Sentinel, MISP · TAXII 2.1 PRO

La méthode recommandée : votre outil interroge CTI Forecast tout seul, en continu. Dans tous les cas : adresse du serveur https://ctiforecast.com/taxii2/, nom d'utilisateur au choix, mot de passe = votre clé API.

  1. OpenCTI : activez le connecteur TAXII2, avec TAXII2_DISCOVERY_URL=https://ctiforecast.com/taxii2/, TAXII2_USERNAME=client, TAXII2_PASSWORD=VOTRE_CLE, TAXII2_V21=true et TAXII2_COLLECTIONS=*.* pour tout récupérer (format racine.collection). Vérifiez les noms exacts des variables dans la documentation de votre version d'OpenCTI.
  2. Microsoft Sentinel : Content hub → solution Threat Intelligence → connecteur Threat Intelligence - TAXII. Racine d'API : https://ctiforecast.com/taxii2/api/, ID de collection (voir ci-dessous), utilisateur client, mot de passe = votre clé API, fréquence : toutes les heures.
  3. MISP : avec l'outil misp-taxii ou un module d'import STIX 2.1, sur les mêmes paramètres.
CollectionID
IP malveillantes77653c02-ccd7-55e5-8db8-85d421cfba7c
Domaines et URL malveillants6d85c187-7ce5-561a-9cb0-d820a89fd099
Fichiers malveillants60ef1a80-e85a-56e8-84b6-f6e51e8d3fb6
Vulnérabilités00ae1b11-d2b2-550f-91d2-39efc6c29dd7

OpenCTI et Microsoft Sentinel · import STIX 2.1 PRO

Téléchargez un bundle STIX, avec les articles sources en références externes :

curl -H "X-API-Key: VOTRE_CLE" -o cti-forecast.json \
  "https://ctiforecast.com/v1/stix?type=sha256,ip,domain&min_confidence=70&limit=1000"

OpenCTI : Data → Import → envoyez le fichier. Les identifiants STIX sont stables, donc réimporter le fichier chaque jour met à jour les indicateurs existants au lieu de créer des doublons.
Microsoft Sentinel : Threat intelligence → Import → depuis un fichier, au format STIX.

Splunk · table de correspondance

Chaque jour (cron), remplacez la lookup par la liste du jour :

{ echo "ioc"; curl -fsS "https://ctiforecast.com/v1/blocklist.txt?type=ip&key=VOTRE_CLE" | grep -v '^#'; } \
  > $SPLUNK_HOME/etc/apps/search/lookups/cti_forecast_ip.csv

Puis, dans une recherche : | lookup cti_forecast_ip.csv ioc AS src_ip OUTPUT ioc AS cti_match | where isnotnull(cti_match)

Un autre outil ?

L'API JSON marche avec tout ce qui sait faire une requête HTTP : Elastic, QRadar, TheHive, scripts Python ou n8n.