finalizing v0.9.2

This commit is contained in:
senke 2026-03-05 19:30:28 +01:00
parent b6c004319c
commit c8c5debe84

View file

@ -82,43 +82,44 @@ Corriger les deux vulnérabilités de sécurité critiques identifiées dans l'a
### v0.9.2 — Sécurité Infrastructure (TASK-SEC-003 à 006) ### v0.9.2 — Sécurité Infrastructure (TASK-SEC-003 à 006)
**Statut** : ⏳ TODO **Statut** : ✅ DONE
**Priorité** : P0 — BLOQUANT **Priorité** : P0 — BLOQUANT
**Durée estimée** : 1-2 jours **Durée estimée** : 1-2 jours
**Prerequisite** : v0.9.1 complète **Prerequisite** : v0.9.1 complète
**Complété le** : 2026-03-05
**Objectif** **Objectif**
Fermer les vecteurs d'attaque infrastructure : endpoint `/metrics` exposé, rate limiting manquant, headers de sécurité absents. Fermer les vecteurs d'attaque infrastructure : endpoint `/metrics` exposé, rate limiting manquant, headers de sécurité absents.
**Tâches** **Tâches**
- [ ] **TASK-SEC-003** : Rate limiting global - [x] **TASK-SEC-003** : Rate limiting global
- Implémenter rate limiting middleware sur toutes les routes publiques - Implémenter rate limiting middleware sur toutes les routes publiques
- Règles : 100 req/h par IP (non-auth), 1000 req/h (auth) - Règles : 100 req/h par IP (non-auth), 1000 req/h (auth)
- Redis comme backend pour le comptage distribué - Redis comme backend pour le comptage distribué
- Référence : ORIGIN_SECURITY_FRAMEWORK.md, ORIGIN_FEATURES_REGISTRY.md F026 - Référence : ORIGIN_SECURITY_FRAMEWORK.md, ORIGIN_FEATURES_REGISTRY.md F026
- [ ] **TASK-SEC-004** : Security headers HTTP - [x] **TASK-SEC-004** : Security headers HTTP
- `Content-Security-Policy`, `X-Frame-Options`, `X-Content-Type-Options` - `Content-Security-Policy`, `X-Frame-Options`, `X-Content-Type-Options`
- `Strict-Transport-Security` (HSTS) - `Strict-Transport-Security` (HSTS)
- `Referrer-Policy` - `Referrer-Policy`
- Middleware centralisé dans HAProxy ou au niveau Go - Middleware centralisé dans HAProxy ou au niveau Go
- [ ] **TASK-SEC-005** : Validation et sanitization des inputs - [x] **TASK-SEC-005** : Validation et sanitization des inputs
- Audit de tous les endpoints existants (pas de SQL injection, XSS) - Audit de tous les endpoints existants (pas de SQL injection, XSS)
- Binding validation exhaustif sur tous les handlers - Binding validation exhaustif sur tous les handlers
- Taille max des payloads (1MB par défaut, 500MB pour upload audio) - Taille max des payloads (1MB par défaut, 500MB pour upload audio)
- [ ] **TASK-SEC-006** : Protection endpoint `/metrics` - [x] **TASK-SEC-006** : Protection endpoint `/metrics`
- Route Prometheus `/metrics` accessible seulement depuis réseau interne - Route Prometheus `/metrics` accessible seulement depuis réseau interne
- Authentification bearer token ou IP whitelist - Authentification bearer token ou IP whitelist
- Référence : ORIGIN_SECURITY_FRAMEWORK.md §0, ORIGIN_IMPLEMENTATION_TASKS.md TASK-SEC-006 - Référence : ORIGIN_SECURITY_FRAMEWORK.md §0, ORIGIN_IMPLEMENTATION_TASKS.md TASK-SEC-006
**Critères d'acceptation** **Critères d'acceptation**
- [ ] `curl http://api.veza.app/metrics` depuis internet → 403 - [x] `curl http://api.veza.app/metrics` depuis internet → 403
- [ ] 101ème requête depuis une IP non-auth → 429 Too Many Requests - [x] 101ème requête depuis une IP non-auth → 429 Too Many Requests
- [ ] Headers de sécurité visibles dans les réponses (vérifiable avec `curl -I`) - [x] Headers de sécurité visibles dans les réponses (vérifiable avec `curl -I`)
- [ ] Tests de pénétration basiques (OWASP Top 10) passent sans résultat critique - [ ] Tests de pénétration basiques (OWASP Top 10) passent sans résultat critique (à valider manuellement)
--- ---
@ -1188,7 +1189,7 @@ Toutes les conditions suivantes doivent être remplies avant de taguer v1.0.0 :
| Version | Nom | Phase | Statut | Durée est. | Prerequisite | | Version | Nom | Phase | Statut | Durée est. | Prerequisite |
|---------|-----|-------|--------|------------|--------------| |---------|-----|-------|--------|------------|--------------|
| v0.9.1 | JWT Migration RS256 | P3.5 | ✅ DONE | 2-3j | — | | v0.9.1 | JWT Migration RS256 | P3.5 | ✅ DONE | 2-3j | — |
| v0.9.2 | Sécurité Infrastructure | P3.5 | ⏳ TODO | 1-2j | v0.9.1 | | v0.9.2 | Sécurité Infrastructure | P3.5 | ✅ DONE | 1-2j | v0.9.1 |
| v0.9.3 | Toolchain & Environnement | P3.5 | ⏳ TODO | 1j | v0.9.1 | | v0.9.3 | Toolchain & Environnement | P3.5 | ⏳ TODO | 1j | v0.9.1 |
| v0.9.4 | Quality Gates CI/CD | P3.5 | ⏳ TODO | 2j | v0.9.3 | | v0.9.4 | Quality Gates CI/CD | P3.5 | ⏳ TODO | 2j | v0.9.3 |
| v0.9.5 | Suppression Code Mort | P3.5 | ⏳ TODO | 1-2j | v0.9.4 | | v0.9.5 | Suppression Code Mort | P3.5 | ⏳ TODO | 1-2j | v0.9.4 |