ADR-025 — M10, incrément 3 : export STIX 2.1 et serveur TAXII 2.1¶
- Statut : accepté le 15/10/2026 (décision de Godwill FOKA : « attaque M10 »)
- Date : 2026-10-15
- Décideurs : Godwill FOKA
- Concerne : ADR-017 (confiance), ADR-022 (exclusions), ADR-024 (campagnes), ROADMAP M10 (« partage du renseignement au format standard »)
Contexte¶
ILL Watch consomme du STIX et du TAXII (flux, ATT&CK) mais ne savait rien partager : un SIEM, un pare-feu ou une autre plateforme CTI (OpenCTI, MISP) devait recopier les IOC à la main.
Décision¶
- Export STIX 2.1 (
illwatch.modules.stix.export) : - un
indicatorpar IOC actif (non expiré, non exclu : un faux positif qualifié n'est jamais partagé), motif STIX selon le type (une plageNETWORKenipv4-addrouipv6-addr), confiance 0–100 d'ADR-017, sévérité en étiquetteseverity:…,valid_untilà l'expiration ; - campagnes, acteur (
intrusion-setpour un groupe,malwarepour un logiciel, avec la référencemitre-attack), relationsattributed-to/usesetindicates; - identifiants déterministes (UUID v5 d'un espace de noms propre à ILL Watch) : un IOC garde le même identifiant d'un export à l'autre, les consommateurs dédupliquent ;
- chaque objet signé par l'identité « ILL Watch » (
created_by_ref). - Serveur TAXII 2.1 en lecture seule, monté hors de
/api(/taxii2/) : découverte, API rootillwatch, collections indicateurs (paginée par curseur stable sur la date de dernière observation, filtreadded_after, en-têtesX-TAXII-Date-Added-First/Last) et campagnes ;objects/,manifest/,match[type]; erreurs au format TAXII ;can_writetoujours faux. - Authentification : jeton Bearer de l'API ou HTTP Basic (les clients TAXII courants ne
savent faire que cela). Le Basic passe par le limiteur de tentatives de la connexion ; les
échecs sont consignés (
taxii.auth). Recommandation : un compte LECTEUR par consommateur, révocable sans toucher aux autres. - Bundle à la demande :
GET /api/v1/stix/bundle?contenu=tout|indicateurs|campagnes,illwatch stix export; chaque export est consigné (stix.export).
Écartés : la bibliothèque stix2 (dépendance lourde pour produire du JSON simple ; le
format est vérifié par l'aller-retour avec notre propre analyseur STIX) ; medallion
(serveur TAXII de référence, mais une seconde application et une seconde base à exploiter).
Conséquences¶
- Positives : ILL Watch devient une source TAXII qu'OpenCTI, MISP ou
taxii2-clientconsomment sans développement ; le partage respecte les exclusions et la confiance. - Négatives : la lecture d'un objet par identifiant (
objects/{id}/) et les filtresmatch[id]/match[version]ne sont pas servis (identifiants dérivés, non stockés) ; la « date d'ajout » TAXII est la dernière observation de l'IOC (un IOC revu réapparaît dansadded_after, ce que les consommateurs absorbent grâce à l'identifiant stable) ; le Basic coûte un hachage de mot de passe par requête (le limiteur borne l'abus). - Le TLP n'est pas encore porté (marquages
marking-definition) : tout est partagé en l'état aux comptes autorisés.
Suivi¶
- Marquages TLP par source et par campagne (TLP:CLEAR par défaut, TLP:AMBER non exporté).
objects/{id}/par table de correspondance si un consommateur l'exige.