Architecture Decision Records¶
Un ADR trace une décision structurante : son contexte, l'arbitrage rendu, sa justification et ses conséquences. On en écrit un quand la décision est coûteuse à revenir dessus, quand deux documents se contredisent, ou quand le choix surprendra quelqu'un qui arrive sur le projet dans six mois.
| ADR | Titre | Statut |
|---|---|---|
| 001 | Formule du score de risque composite | Accepté |
| 002 | GitLab comme dépôt principal, abandon de GitHub | Accepté, complété par 015 |
| 003 | Authentification JWT livrée dès la phase 1 | Accepté |
| 004 | Recalage du planning sur la fin réelle de la phase 1 | Proposé |
| 005 | Cycle de vie et déduplication des IOC | Proposé |
| 006 | Provenance multi-sources, OTX et collecte planifiée | Proposé |
| 007 | Moteur CVE : sources, recalcul, ligne de base des alertes | Proposé |
| 008 | Incidents : chronologie immuable, incident issu d'une alerte | Proposé |
| 009 | Threat hunting : règles déterministes, deux modes, sessions | Proposé |
| 010 | Client TAXII 2.1 : taxii2-client durci, transport maison en repli | Proposé |
| 011 | Durcissement de production : audit append-only, couche HTTP, limitation compte × IP | Proposé |
| 012 | Rôles PostgreSQL séparés, sessions révocables, rotation de clé, Redis protégé | Proposé |
| 013 | Déploiement : TLS par Caddy, migrations isolées, analyse d'image, entretien quotidien | Proposé |
| 014 | Score : dépendance à EPSS et plancher KEV | Accepté (A + B + C) |
| 015 | Miroir GitHub : CI, documentation publiée, image Docker et releases | Accepté |
| 016 | Interface web : React + TypeScript, temps réel par SSE, système de design v6 (v7 puis v8 le 11/10) | Accepté |
| 017 | M8 : confiance des IOC d'abord (Amirauté, fraîcheur, récurrence), corrélation ensuite | Accepté |
| 018 | Identité ILL Watch : le brand book v2 fait autorité sur l'interface (logo, jetons, Inter, voix) | Accepté |
| 019 | Enrichissement hors ligne des IP : DB-IP Lite (pays, AS) importée localement, aucune requête par IOC | Accepté |
| 020 | Corrélation : inventaire d'actifs, trois règles (KEV, exploit, actif dans un IOC), score justifié, mesure sur jeu figé | Accepté |
| 021 | Corrélation par version : plages vulnérables NVD, verdict par actif | Accepté |
| 022 | M9 SOC Operations : niveaux L1/L2/L3, faux positifs et liste d'exclusion, chasse depuis l'incident, recommandations, règles versionnées, pilotage (MTTA, MTTR, délais cibles) | Accepté |
| 023 | M10, incrément 1 : contexte MITRE ATT&CK des détections (technique par règle, acteur cité en toutes lettres) | Accepté |
| 024 | M10, incrément 2 : campagnes, infrastructure (IOC rattachés), attribution par l'infrastructure | Accepté |
| 025 | M10, incrément 3 : export STIX 2.1 et serveur TAXII 2.1 en lecture seule (Bearer ou Basic) | Accepté |
| 026 | M11 : métriques Prometheus, Grafana, alertes, environnements, acceptation en CI, restauration mensuelle | Accepté |
Gabarit¶
# ADR-NNN — Titre
- **Statut :** proposé / accepté / remplacé par ADR-XXX
- **Date :** AAAA-MM-JJ
- **Décideurs :**
- **Concerne :** module, exigence
## Contexte
Ce qui force une décision. Les faits, pas les opinions.
## Décision
Ce qui est décidé, en une phrase affirmative.
## Justification
Pourquoi cette option plutôt que les autres. Les options écartées et leur raison.
## Conséquences
Positives et négatives. Les négatives sont obligatoires : une décision sans coût n'en est pas une.
## Suivi
Les actions ouvertes que cette décision crée.