veza/docs/REMEDIATION_MATRIX_v0.12.6.md
senke 7e05cdf5da feat(v0.12.6): pentest security audit — 3 deliverables
- PENTEST_REPORT_VEZA_v0.12.6.md: 14 findings (0 CRIT, 2 HIGH, 5 MEDIUM, 4 LOW, 3 INFO), 18 PASS controls
- REMEDIATION_MATRIX_v0.12.6.md: prioritized remediation actions (P1: 4h, P2: 5h, P3: 5.5h)
- ASVS_CHECKLIST_v0.12.6.md: OWASP ASVS Level 2 — 92/101 (91.1%) conformity

Methodology: SAST + manual code review, OWASP Top 10 2021, API Security Top 10 2023

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:44:38 +01:00

4.4 KiB

Matrice de Remédiation — VEZA v0.12.6

Date : 2026-03-13 Référence : PENTEST_REPORT_VEZA_v0.12.6.md


Priorité de remédiation

Les actions sont classées par priorité d'implémentation (combinaison sévérité + facilité de fix + impact business).


Actions Prioritaires (P1 — Avant release v1.0.0)

ID Finding Sévérité Fichier(s) Action Effort Responsable
REM-001 HIGH-001 HIGH handlers/common.go:601-610 Remplacer c.GetHeader("X-Forwarded-For") par c.ClientIP() + configurer SetTrustedProxies() 1h Backend
REM-002 HIGH-002 HIGH user_service.go:75, social_service.go:321, types/stats.go:31 Supprimer followers_count/following_count de PublicUserResponse et SuggestionUser. Exposer uniquement dans le dashboard privé. 2h Backend
REM-003 MEDIUM-001 MEDIUM auth/service.go:156, :986 Remplacer bcrypt.DefaultCost par bcryptCost (12) importé depuis password_service.go ou une constante partagée 30min Backend
REM-004 MEDIUM-004 MEDIUM social/models.go:32 Ajouter json:"-" sur LikeCount du modèle Post ou créer une DTO publique sans ce champ 30min Backend

Effort total P1 : ~4h


Actions Recommandées (P2 — Sprint suivant)

ID Finding Sévérité Fichier(s) Action Effort
REM-005 MEDIUM-002 MEDIUM sast.yml, security-scan.yml, cd.yml, stream-ci.yml, container-scan.yml, staging-validation.yml Épingler les 12+ GitHub Actions par SHA. Configurer Dependabot pour les mises à jour. 2h
REM-006 MEDIUM-003 MEDIUM .env.production:40 Renommer en .env.local ou .env.development. Mettre les valeurs HTTPS par défaut. Ajouter validation au startup. 1h
REM-007 MEDIUM-005 MEDIUM handlers/dashboard.go:149-150 Créer TrackPreviewPublic (sans métriques) et TrackPreviewPrivate (avec métriques). Utiliser le bon type selon le contexte. 1h
REM-008 LOW-001 LOW config/config.go:138 Passer CookieSameSite de lax à strict si pas de flow OAuth redirect cross-site 30min
REM-009 LOW-003 LOW utils/utils.go:57 Aligner HashPassword() sur bcryptCost = 12 ou la supprimer si non utilisée en prod 15min

Effort total P2 : ~5h


Actions Optionnelles (P3 — Backlog)

ID Finding Sévérité Fichier(s) Action Effort
REM-010 LOW-002 LOW migrations/*.sql Auditer les 30+ CASCADE DELETE. Remplacer par RESTRICT/SET NULL pour orders, payments, subscriptions 4h
REM-011 INFO-001 INFO veza_back_api_db/ Ajouter au .gitignore, purger de l'historique git avec BFG 1h
REM-012 INFO-002/003 INFO cmd/tools/hash_gen/main.go, cmd/tools/create_test_user/main.go Aligner sur bcryptCost 12 15min
REM-013 LOW-004 LOW staging-validation.yml:35 Épingler docker/setup-buildx-action par SHA 10min

Effort total P3 : ~5.5h


Résumé par effort

Priorité Findings Effort total
P1 (Bloquant v1.0.0) 4 ~4h
P2 (Sprint suivant) 5 ~5h
P3 (Backlog) 4 ~5.5h
Total 13 ~14.5h

Workflow de remédiation

1. REM-001 (IP spoofing fix)     → Test: vérifier rate limit avec X-Forwarded-For forgé
2. REM-002 (followers_count)     → Test: vérifier que /api/v1/users/:id ne retourne plus followers_count
3. REM-003 (bcrypt cost)         → Test: vérifier que le hash créé a un cost de 12
4. REM-004 (Post like_count)     → Test: vérifier que les posts API n'exposent pas like_count
5. REM-005 (GitHub Actions SHA)  → Test: vérifier que tous les `uses:` contiennent un SHA
6. REM-006 (.env.production)     → Test: vérifier que le startup refuse HTTP origins en production

Métriques de suivi

Métrique Valeur actuelle Cible v1.0.0
Findings CRITICAL 0 0
Findings HIGH 2 0
Findings MEDIUM 5 0
Findings LOW 4 ≤ 2
Actions pinned by SHA ~60% 100%
bcrypt cost consistency 2 valeurs (10, 12) 1 valeur (12)
Public popularity metrics 3 endpoints 0 endpoints

Matrice générée le 2026-03-13 — VEZA v0.12.6