Skip to main content

Analyse de Sécurité OWASP Top 10

L'API présente un bon niveau de sécurité de base mais nécessite des ajustements pour la production.

Analyse Détaillée

A01 - Contrôle d'Accès Défaillant

Statut : PROTÉGÉ

  • Authentification JWT robuste (15min TTL)
  • Guards NestJS pour vérification permissions
  • Principe du moindre privilège appliqué
  • Tests : Utilisateurs ne peuvent accéder qu'à leurs données

A02 - Défaillances Cryptographiques

Statut : PROTÉGÉ

  • Mots de passe hachés bcrypt et jamais en clair
  • Tokens JWT sécurisés (15min TTL)
  • HTTPS configuré via Helmet

A03 - Injection

Statut : PROTÉGÉ

  • ORM Prisma (protection native SQL injection)
  • ValidationPipe NestJS strict
  • Requêtes paramétrées uniquement
  • Tests : Tentatives d'injection SQL

A04 - Conception Non Sécurisée

Statut : PROTÉGÉ

  • Architecture modulaire NestJS
  • Gestion d'erreurs centralisée
  • Logs de sécurité complets (Winston)

A05 - Mauvaise Configuration Sécurité

Statut : PROTÉGÉ

  • Variables d'environnement sécurisées
  • Headers de sécurité (Helmet) configurés
  • CORS restrictif configuré
  • Swagger désactivé en production (NODE_ENV !== 'production')
  • Messages d'erreur masqués en production (disableErrorMessages: true)

A06 - Composants Vulnérables

Statut : PROTÉGÉ

  • Dépendances récentes (2024-2025)
  • Packages sécurisés (bcrypt, helmet, prisma)
  • Audit npm disponible

A07 - Échecs d'Identification

Statut : PROTÉGÉ

  • Rate limiting ThrottlerGuard (5 req/sec)
  • Sessions JWT courtes (15min)
  • Pas de comptes par défaut
  • Tests : Brute force détecté et bloqué

A08 - Défaillances d'Intégrité

Statut : PROTÉGÉ

  • ValidationPipe stricte avec DTOs
  • Contraintes Prisma en base
  • Audit trail via logs Winston

A09 - Défaillances Logging/Monitoring

Statut : PROTÉGÉ

  • Logs Winston structurés
  • DailyRotateFile pour rotation
  • Événements sécurité tracés
  • Sanitisation des logs (bcrypt, JWT)

A10 - Falsification Requêtes SSRF

Statut : PROTÉGÉ

  • Pas de requêtes externes user-controlled
  • Email SMTP fixe uniquement
  • Isolation Docker

Tests de Sécurité

Tests Automatisés (22 tests totaux)

  • 1 test app.e2e-spec.ts
  • 10 tests booking-workflow.e2e-spec.ts
  • 9 tests security.e2e-spec.ts
  • 2 tests rate-limiting.e2e-spec.ts

Couverture Tests Sécurité

  • Injection SQL : Testé (security.e2e-spec.ts)
  • Authentification/Autorisation : Testé
  • Validation données : Testé
  • Rate limiting : Testé
  • Logging sécurité : Implémenté

Actions supplémentaires (Production)

  1. Swagger désactivé en prod : Condition NODE_ENV !== 'production' implémentée
  2. ValidationPipe optimisé : disableErrorMessages: true en production