Ce guide suit la documentation CIRCL Managing feeds. Les feeds fonctionnent sur toutes les licences Q-Feeds, y compris l'édition Community gratuite : voir le modèle de licence. Identifiants : Obtenir vos threat feeds.
Prérequis
- MISP : une instance en service et un compte qui a accès à Sync Actions
- Jeton : un jeton API Community, Plus, Premium ou Enterprise
- Réseau : HTTPS sortant vers
api.qfeeds.comsur le port 443
Aucun module n'intervient. Le système de feeds de MISP se charge lui-même de la récupération et du parsing, il n'y a donc rien à installer sur le serveur.
Regardez le fichier avant de configurer quoi que ce soit
Ouvrez d'abord l'URL de votre feed dans un navigateur. Vous verrez la liste brute que MISP va parser, et vous pourrez compter quelle colonne contient la valeur qui vous intéresse. Ce numéro de colonne est le réglage le plus souvent raté.
https://api.qfeeds.com/api.php?feed_type=malware_ip&type=csv&api_token=YOUR_TOKEN
Remplacez malware_ip par malware_domains ou malicious_urls pour obtenir les autres listes. Chaque liste est un feed distinct dans MISP, ajoutez-les donc une par une. Le tableau complet des paramètres se trouve dans API IOC Lookup et TAXII.
Ajouter le feed
Allez dans Sync Actions, List Feeds, puis Add Feed dans le menu latéral. Le formulaire affiche ou masque des champs selon vos choix, renseignez donc Source Format assez tôt.
| Champ | Valeur |
|---|---|
| Enabled | Coché |
| Caching enabled | Coché, pour pouvoir corréler avant d'importer |
| Name / Provider | Un intitulé que vous reconnaîtrez plus tard, par exemple Q-Feeds malicious IPs et Q-Feeds |
| Input Source | Network |
| URL | L'URL de votre feed, avec l'api_token |
| Source Format | Simple CSV Parsed Feed (utilisez Freetext Parsed Feed pour les listes en texte brut) |
| Value field(s) in the CSV | Le numéro de la colonne qui contient l'indicateur, séparés par des virgules s'il y en a plusieurs |
| Delimiter | , |
| Exclusion Regex | Facultatif, utile si le fichier commence par une ligne de commentaire |
| Target Event | Fixed Event, pour que la liste arrive dans un seul événement au lieu d'un nouveau à chaque récupération |
| Delta Merge | Coché, pour que les indicateurs qui sortent du feed soient retirés |
| Auto Publish | À vous de voir, laissez-le décoché si vous voulez relire avant que l'événement soit partagé |
| Default Tag | Facultatif, un tag comme block-or-filter-list facilite le tri de ces événements par la suite |
Validez, puis utilisez Fetch à côté de votre nouveau feed pour le tirer une première fois. Rien n'arrive tant que vous ne l'avez pas fait manuellement une fois.
Rester à jour
La première récupération est manuelle, les suivantes ne devraient pas l'être. Sous Administration, Scheduled Tasks, réglez la tâche de récupération des feeds sur la fréquence qui vous convient. Q-Feeds s'actualise toutes les 20 minutes, une récupération horaire ou un peu moins fréquente vous garde donc proche du temps réel sans solliciter l'API inutilement.
Importer, ou seulement corréler
Ce sont deux choses différentes, et la distinction compte si la taille de votre base de données vous importe.
- Fetch importe les indicateurs comme attributs de votre événement cible. Ils se comportent comme n'importe quel autre attribut et se corrèlent normalement.
- Cache stocke plutôt le feed dans Redis. MISP vous montre les recoupements avec vos propres événements sans rien ajouter à votre base de données.
Le cache est l'option la plus légère, et un bon moyen de voir à quelle fréquence Q-Feeds recoupe vos données avant de vous engager sur un import. Si vous passez par le cache, cochez Lookup Visible sur le feed pour que les corrélations soient visibles par le reste de votre équipe et pas seulement par vous.
À quoi ressemble un indicateur ingéré
Chaque ligne devient un attribut MISP du type induit par votre mapping de colonnes : ip-src ou ip-dst pour les listes d'IP, domain pour les domaines malware, url pour les URL malveillantes. La corrélation relie ensuite ces valeurs aux événements déjà créés par votre équipe.
Dépannage
- Rien après une récupération : ouvrez l'URL du feed dans un navigateur. Si elle renvoie une erreur au lieu d'une liste, le jeton est erroné ou expiré.
- Attributs du mauvais type : le champ de valeur pointe vers la mauvaise colonne. Recomptez à partir du fichier lui-même, en sachant que le comptage commence à 1.
- L'événement grossit à chaque récupération : Delta Merge est désactivé, ou Target Event est réglé sur New Event Each Pull.
- Une ligne de commentaire devient un attribut : ajoutez une Exclusion Regex pour les lignes qui commencent par
#. - Les données ne se mettent plus à jour : la tâche planifiée de récupération n'est pas activée. Le fait que la première récupération soit manuelle en piège beaucoup.
- Assistance : support@qfeeds.com ou la page support.