Skip to main content

Pratiques de sécurité

Il est crucial d'intégrer les meilleures pratiques de sécurité dès le début du développement. Voici des recommandations spécifiques pour garantir une sécurité robuste :

1. Gestion des Secrets et Configuration

  • Utilisation de Secrets Kubernetes : Tous les secrets (comme les mots de passe, clés API, etc.) ne sont pas dans les fichiers de configurations de l'application, mais sous forme de secrets Kubernetes.

2. Authentification et Autorisation

  • Authentification forte : Le mécanisme d'authentification repose sur OAuth2 et OpenID Connect (OIDC), pour assurer une identification sécurisée des utilisateurs.

  • Gestion des sessions : Open ENT v3 est stateless pour permettre une scalabilité horizontale et verticale.

3. Protection contre les Vulnérabilités

  • Validation des entrées : Les entrées utilisateur sont correctement validées et assainies pour éviter les attaques de type injection (SQL, NoSQL, etc.). Open ENT NG utilise un schéma JSON de validation. Quarkus propose aussi l'utilisation de Bean Validation (via quarkus-hibernate-validator) pour valider les entrées qui sont progressivement utilisées dans les nouveaux développements Open ENT v3.

  • Protection contre les attaques CSRF et XSS : Les protections contre les attaques de type Cross-Site Request Forgery (CSRF) et Cross-Site Scripting (XSS) sont en place avec un contrôle des entrées utilisateur.

  • Configuration de sécurité : Les en-têtes de sécurité HTTP Utilisent les mécanismes de sécurité fournis par Quarkus, comme la configuration des (Content-Security-Policy, X-Frame-Options, etc.) pour protéger contre les attaques web courantes.

4. Sécurité des Communications

  • Utilisation de TLS : Toutes les communications entre les clients et les services sont chiffrées en utilisant TLS (Transport Layer Security).

  • Validation des certificats : Les certificats utilisés pour TLS sont validés et proviennent d'une autorité de certification fiable.

5. Mises à Jour et Gestion des Dépendances

  • Gestion des dépendances : Les vulnérabilités dans les dépendances de l'application sont surveillées, et toutes les dépendances sont maintenues à jour et exemptes de vulnérabilités connues. Les outils comme OWASP Dependency-Check ou GitHub Dependabot sont intégrés pour analyser les dépendances.

  • Mises à jour régulières : Quarkus et ses extensions sont mis à jour régulièrement pour bénéficier des dernières améliorations de sécurité et des corrections de vulnérabilités. Extensions pour bénéficier des dernières améliorations de sécurité et des corrections de vulnérabilités.

6. Audit et Surveillance

  • Logging et Monitoring : Une solution de logging et de monitoring est intégrée pour surveiller les activités suspectes et détecter les anomalies. Open ENT supporte l'intégration avec des systèmes de logging comme ELK Stack ou Prometheus.

  • Audit et traçabilité : Les opérations sensibles sont auditées et les journaux d’audit sont conservés et protégés contre les modifications. MongoDB ou PostgreSQL peuvent être utilisés pour le stockage des journaux.

7. Sécurité du Code

  • Tests de sécurité : Des tests de sécurité sont intégrés dans le pipeline CI/CD pour détecter les failles potentielles dans le code.