Files
2026-03-01 22:00:28 +00:00

12 KiB

Politique de Sécurité - UnionFlow Client

Security OWASP

Ce document décrit les pratiques de sécurité, les vulnérabilités connues et les procédures de signalement pour l'application UnionFlow Client.

📋 Table des Matières

🔄 Versions Supportées

Version Supportée Fin de Support
1.0.x Oui 31 Déc 2025
< 1.0 Non N/A

🏗️ Architecture de Sécurité

Modèle de Sécurité

L'application implémente une architecture de sécurité en profondeur (Defense in Depth):

┌─────────────────────────────────────────────┐
│  1. TLS/HTTPS (Transport)                   │
│     - Certificats SSL/TLS valides           │
│     - HSTS activé (max-age=1 an)           │
└─────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────┐
│  2. Headers de Sécurité HTTP                │
│     - CSP, X-Frame-Options, etc.           │
│     - Protection XSS, Clickjacking         │
└─────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────┐
│  3. Authentification OIDC (Keycloak)        │
│     - OAuth 2.0 / OpenID Connect           │
│     - JWT Tokens signés                    │
└─────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────┐
│  4. Autorisation (RBAC)                     │
│     - Vérification rôles multiples         │
│     - Permissions granulaires              │
└─────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────┐
│  5. Validation des Entrées                  │
│     - Hibernate Validator                  │
│     - Validateurs personnalisés            │
└─────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────┐
│  6. Logging Sécurisé                        │
│     - Pas de données sensibles             │
│     - Audit trails                         │
└─────────────────────────────────────────────┘

🔐 Authentification et Autorisation

Authentification

  • Méthode: OpenID Connect (OIDC) via Keycloak
  • Protocole: OAuth 2.0 Authorization Code Flow
  • Tokens: JWT (JSON Web Tokens) signés avec RS256

Configuration Keycloak Requise

# Serveur d'authentification
quarkus.oidc.auth-server-url=https://security.lions.dev/realms/unionflow

# Client configuration
quarkus.oidc.client-id=unionflow-client
quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET}

# Scopes
quarkus.oidc.authentication.scopes=openid,profile,email,roles

# TLS Verification
quarkus.oidc.tls.verification=required  # JAMAIS 'none' en production

Rôles et Permissions

Hiérarchie des Rôles

  1. SUPER_ADMIN - Accès complet système
  2. ADMIN_ENTITE - Administration organisation
  3. ADMIN - Administration locale
  4. GESTIONNAIRE_* - Gestion fonctionnelle
  5. TRESORIER - Gestion financière
  6. MEMBRE - Accès membre standard

Permissions Granulaires

  • canManageMembers() - Gestion des membres
  • canManageFinances() - Gestion financière
  • canManageEvents() - Gestion des événements
  • canViewReports() - Consultation des rapports
  • canAccessSuperAdmin() - Accès super-admin

Gestion des Sessions

  • Timeout: 60 minutes par défaut
  • Cookie Flags:
    • HttpOnly: Activé (prévention XSS)
    • Secure: Activé (HTTPS uniquement)
    • SameSite: Strict (prévention CSRF)

Gestion des Tokens JWT

  • Access Token: Durée de vie courte (15-30 min)
  • Refresh Token: Durée de vie longue (7 jours)
  • Stockage: Cookies HttpOnly (JAMAIS localStorage)
  • Rafraîchissement: Automatique 5 min avant expiration
  • Cache: Limite de 10,000 tokens (protection DoS)

🛡️ Protection des Données

Données Sensibles

Classification

Type Niveau Stockage Transmission
Mots de passe Critique Hachés (bcrypt) HTTPS uniquement
Tokens JWT Critique Cookies HttpOnly HTTPS uniquement
Email Confidentiel Chiffré DB HTTPS uniquement
Téléphone Confidentiel Chiffré DB HTTPS uniquement
Nom/Prénom Public Clair HTTPS uniquement

Protection en Transit

  • Protocole: TLS 1.2+ uniquement (pas de TLS 1.0/1.1)
  • Cipher Suites: Modernes et sûres uniquement
  • HSTS: Activé avec includeSubDomains et preload

Protection au Repos

  • Base de données: Chiffrement au niveau base (via backend)
  • Fichiers: Chiffrement du système de fichiers recommandé
  • Logs: Pas de données sensibles loggées

Conformité RGPD

  • Minimisation des données: Collecte uniquement des données nécessaires
  • Droit à l'oubli: API de suppression disponible
  • Portabilité: Export de données en JSON/Excel
  • Audit: Logs de toutes les opérations sensibles

🔒 Headers de Sécurité

Configuration Production

Tous les headers suivants sont automatiquement configurés en production:

# Prévention MIME Sniffing
X-Content-Type-Options: nosniff

# Protection Clickjacking
X-Frame-Options: DENY

# HSTS (HTTPS forcé)
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

# Content Security Policy
Content-Security-Policy: default-src 'self';
  script-src 'self' 'unsafe-inline' 'unsafe-eval';
  style-src 'self' 'unsafe-inline';
  img-src 'self' data:;
  font-src 'self' data:;
  connect-src 'self';
  frame-ancestors 'none'

# Protection XSS (legacy)
X-XSS-Protection: 1; mode=block

# Politique de référents
Referrer-Policy: strict-origin-when-cross-origin

# Permissions Policy
Permissions-Policy: geolocation=(), microphone=(), camera=()

Content Security Policy (CSP)

⚠️ Note: unsafe-inline et unsafe-eval sont nécessaires pour PrimeFaces/JSF qui génèrent des scripts inline. Une migration vers des nonces CSP est prévue dans une version future.

🔑 Gestion des Secrets

Secrets à Protéger

  1. KEYCLOAK_CLIENT_SECRET - Secret client Keycloak
  2. Clés de chiffrement - Si applicable
  3. Tokens API - Pour services externes

Bonnes Pratiques

À FAIRE

  • Utiliser des variables d'environnement pour tous les secrets
  • Utiliser un gestionnaire de secrets (HashiCorp Vault, AWS Secrets Manager)
  • Régénérer les secrets régulièrement (rotation)
  • Utiliser des secrets différents pour dev/staging/prod
  • Auditer l'accès aux secrets

À NE JAMAIS FAIRE

  • Committer des secrets dans Git
  • Hardcoder des secrets dans le code
  • Partager des secrets par email/Slack
  • Utiliser des secrets par défaut
  • Logger des secrets

Vérification dans Git

# Vérifier qu'aucun secret n'est présent
git secrets --scan

# Nettoyer l'historique si nécessaire
git filter-branch --force --index-filter \
  "git rm --cached --ignore-unmatch src/main/resources/application-dev.properties" \
  --prune-empty --tag-name-filter cat -- --all

🚨 Vulnérabilités Connues

Critiques Corrigées (v1.0.0)

ID Vulnérabilité Statut Correction
SEC-001 Secret Keycloak en dur Corrigé Supprimé du code
SEC-002 TLS verification=none en dev Corrigé Activé required
SEC-003 Exposition erreurs backend Corrigé Messages génériques
SEC-004 Logging données sensibles Corrigé Logs anonymisés
SEC-005 Cache tokens illimité Corrigé Limite 10,000
SEC-006 Cookie Secure=false Corrigé Activé en prod

Risques Résiduels

Risque Niveau Mitigation
Dépendance PrimeFaces inline scripts Moyen CSP avec unsafe-inline
Session fixation Faible Régénération session à login

📢 Signalement de Vulnérabilités

Processus de Signalement

Si vous découvrez une vulnérabilité de sécurité:

  1. NE PAS créer d'issue publique
  2. Envoyer un email à: security@lions.dev
  3. Inclure:
    • Description détaillée de la vulnérabilité
    • Étapes pour reproduire
    • Impact potentiel
    • Version affectée
    • Preuve de concept (si applicable)

Délais de Réponse

  • Accusé de réception: 24 heures
  • Évaluation initiale: 72 heures
  • Correctif critique: 7 jours
  • Correctif haute priorité: 30 jours

Récompenses

Nous proposons un programme de Bug Bounty pour les vulnérabilités critiques validées. Contactez security@lions.dev pour plus de détails.

📊 Conformité

Standards de Sécurité

  • OWASP Top 10 2021: Conforme
  • OWASP ASVS Level 2: Conforme
  • CWE Top 25: Vérifié

Audits de Sécurité

Date Type Résultat Rapport
2025-12-17 Interne Pass docs/audit-2025-12.pdf

Tests de Sécurité

Automatisés (CI/CD)

  • Dependency Check: OWASP Dependency-Check Maven plugin
  • SAST: Spotbugs Security Plugin
  • Secrets Scanning: GitGuardian

Manuels (Périodiques)

  • Pentesting: Annuel
  • Code Review: À chaque release majeure
  • Configuration Review: Trimestriel

🛠️ Outils de Sécurité Recommandés

Développement

# Analyse de dépendances
mvn org.owasp:dependency-check-maven:check

# Analyse statique
mvn spotbugs:check

# Secrets scanning
git secrets --scan --recursive

Production

  • WAF: Cloudflare, AWS WAF, ou ModSecurity
  • IDS/IPS: Suricata, Snort
  • Log Monitoring: ELK Stack, Splunk
  • Vulnerability Scanner: Nessus, OpenVAS

📚 Références


Dernière mise à jour: 17 Décembre 2025 Contact Sécurité: security@lions.dev PGP Key: Disponible sur demande