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
- Firewall → Aliases, onglet URLs sur pfSense. Sur OPNsense, c'est Firewall → Aliases, puis +.
- Type : URL Table (IPs). Nom :
CTI_FORECAST_IP. - URL :
https://ctiforecast.com/v1/blocklist.txt?type=ip&days=30&key=VOTRE_CLE - Fréquence de mise à jour : 1 jour.
- Créez une règle de pare-feu Block sur l'interface WAN (et LAN en sortie) avec
CTI_FORECAST_IPcomme 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
- Sync Actions → Feeds → Add Feed.
- Source format : Freetext Parsed Feed. Input source : Network.
- URL :
https://ctiforecast.com/v1/blocklist.txt?type=sha256&days=7&key=VOTRE_CLE - Créez un flux par type (sha256, ip, domain…) pour que MISP range chaque valeur dans le bon attribut.
- 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.
- OpenCTI : activez le connecteur TAXII2, avec
TAXII2_DISCOVERY_URL=https://ctiforecast.com/taxii2/,TAXII2_USERNAME=client,TAXII2_PASSWORD=VOTRE_CLE,TAXII2_V21=trueetTAXII2_COLLECTIONS=*.*pour tout récupérer (formatracine.collection). Vérifiez les noms exacts des variables dans la documentation de votre version d'OpenCTI. - 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), utilisateurclient, mot de passe = votre clé API, fréquence : toutes les heures. - MISP : avec l'outil misp-taxii ou un module d'import STIX 2.1, sur les mêmes paramètres.
| Collection | ID |
|---|---|
| IP malveillantes | 77653c02-ccd7-55e5-8db8-85d421cfba7c |
| Domaines et URL malveillants | 6d85c187-7ce5-561a-9cb0-d820a89fd099 |
| Fichiers malveillants | 60ef1a80-e85a-56e8-84b6-f6e51e8d3fb6 |
| Vulnérabilités | 00ae1b11-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.