Projet Integration 10_securite - dudleydehenau/Ephec GitHub Wiki

Sécurité

Analyse de sécurité

Risques identifiés et contre-mesures.

API / DB :

1. Exposition des clés d'API

  • Risque : Les clés anon et service_role exposées dans le code ou accessibles publiquement peuvent permettre un accès non autorisé.
  • Contre mesure : Ne jamais exposer la clé service_role côté client, même dans des applications compilées. Enregistrer les clés dans des Variables d'Environnement.

2. Mauvaise configuration des règles de sécurité RLS

  • Risque : Les Row-Level Security (RLS) mal configurées peuvent exposer des données à des utilisateurs non autorisés.
  • Contre mesure : Toujours activer les RLS sur chaque table de notre Base de données. Écrire des règles spécifiques basées sur les rôles ou les utilisateurs en accordant que certaines actions sur certaines tables et colonnes pour un utilisateur donné.

3. Attaques par brute force ou vol de tokens d’accès

  • Risque : Les tokens d'accès (JWT) peuvent être volés ou devinés si des mesures de sécurité faibles sont utilisées. Des attaques de brute force sur le système d'authentification peuvent alors permettre l'accès non autorisé.
  • Contre mesure : Utiliser des tokens JWT avec une durée de vie courte et activer la protection contre le brute force avec des limitations de tentatives de connexion (rate limiting).

4. Risques liés aux permissions de la base de données

  • Risque : Attribuer des permissions excessives ou incorrectes (par exemple : donner SELECT à tout le monde sur une table critique).
  • Contre mesure : Attribuer les permissions au minimum nécessaire.

5. Déni de service (DoS) ou surcharge des API

  • Risque : Une attaque par DoS sur une l'API publique ou un usage excessif des endpoints peut entraîner une surcharge des ressources.
  • Contre mesure : Activer le rate limiting sur les API publiques.

6. Partage accidentel d’accès ou d’informations

  • Risque : Partager des clés, configurations ou tokens dans des dépôts publics (par exemple sur GitHub).
  • Contre mesure : Configurer des alertes pour détecter les clés ou tokens exposés et s'échanger un fichier de variable d'environnement unique via Discord.

Site Web :

Résultats des analyses

Résultats des outils d'analyse de sécurité.

API / DB :

Pour le coté API et DB nous n'avons pas vraiment d'analyse de Sécurité qui a été faite avec un logiciel tiers car Supabase fournit déjà tous les outils nécessaire pour détecté des problèmes de sécurité et effectuer de la surveillance.

Voici ci-dessous un exemple de résultat d'analyse de Sécurité sur notre API publique :

Dans notre cas nous n'avons actuellement aucun problème d'intrusions malveillantes sur les endpoints de notre API.

Site Web :

Diagramme de flux de données

API / DB :

En ce qui concerne les analyses de Flux de Données Supabase ne nous fournit pas de diagramme, par contre il fournit des tableaux extrêmement bien détaillé sur toutes les requêtes reçue par notre API.

Vous trouverez ci-dessous un aperçu de 2 tableaux dont l'un correspond au Performance Advisor et l'autre au Query Performance :

Performance Advisor

Sur celui-ci on peut remarqué que par moment il y a eu des problèmes de performances qui sont lié au RLS configurées qui sont appliquées sur chaque requête reçue par l'API, ce qui diminue alors la rapidité de réponse mais qui n'est en aucun cas dérangeant dans notre situation.

Query Performance

Sur ce tableau on peut voir les temps de réponse à chaque requête, le type de requête et sur quel table elle s'applique, ainsi que voir combien de fois cette requête à été exécutée par exemple.

Site Web :