Aikido

Développer rapidement, rester sécurisé : L'approche de Supabase pour un développement sécurisé par défaut

Écrit par
Trusha Sharma

Dans le cadre de la série Security Masterclass d'Aikido, Mackenzie Jackson s'est entretenu avec Bill Harmer (CISO, Supabase) et Etienne Stalmans (Security Engineer, Supabase) pour explorer comment Supabase aborde la sécurité dès la conception, et non comme un ajout ultérieur.

De la sécurité au niveau des lignes (RLS) aux risques du codage assisté par l'IA, la discussion a porté sur ce qu'il faut pour construire rapidement et rester sécurisé.

La sécurité commence par les données

La philosophie de Supabase commence avec les données elles-mêmes.

« Nous avons construit Supabase du point de vue d'un développeur. Tout commence avec les données. Pourquoi construire des couches secondaires quand on peut tout contrôler en un seul endroit. » - Bill Harmer, CISO Supabase

Au lieu de disperser la logique de sécurité entre les services, Supabase la rapproche de l'endroit où résident les données. Plus le contrôle est proche, moins il y a de chances que les choses tournent mal.

Construire à partir des premiers principes

Pour Etienne, cette approche modifie la façon dont les développeurs conçoivent la création de logiciels.

« Lorsque vous rapprochez la sécurité de vos données, vous commencez à y penser à partir des premiers principes. Une fois que cela fait tilt, vous accélérez le développement et restez confiant quant à sa sécurité. » - Etienne Stalmans, Ingénieur Sécurité Supabase

En intégrant la propriété et l'accès aux données dans la conception des applications, les équipes éliminent les incertitudes liées aux systèmes de permissions multicouches.

Anonyme ou authentifié

Supabase simplifie le contrôle d'accès. Les utilisateurs sont soit anonymes, soit authentifiés, rien entre les deux.

« Toutes les mises à jour de données doivent être journalisées : qui a fait quoi, quand et pourquoi. Les utilisateurs anonymes ont un accès limité. Les utilisateurs authentifiés obtiennent exactement ce dont ils ont besoin et rien de plus. » - Bill Harmer, CISO Supabase

Etienne a démontré cela pendant la session en utilisant une application de partage de recettes en direct.

Les recettes publiques étaient visibles par tous. Les recettes privées n'étaient visibles que par leurs propriétaires ou des utilisateurs partagés spécifiques.

Quelques lignes de SQL, soutenues par la sécurité au niveau des lignes (Row Level Security), géraient l'ensemble du modèle.

La sécurité au niveau des lignes (Row Level Security) est non négociable

Le RLS définit qui peut voir ou modifier quelles lignes de données. C'est l'une des fonctionnalités les plus puissantes de Postgres et l'une des plus faciles à négliger.

« C'est tout ce qu'il faut, une vérification manquante et tout est exposé. » - Etienne Stalmans, Ingénieur Sécurité Supabase

Etienne a partagé un exemple où une politique générée par IA a accidentellement renvoyé chaque enregistrement d'une table parce qu'elle avait ignoré une condition.

La correction a été une simple modification de la requête, une ligne qui a comblé une faille de sécurité majeure.

Bill l'a résumé simplement :

« Nous voulons que la sécurité soit aussi proche des données que possible. Plus elle est proche, moins il y a de place pour l'erreur. » - Bill Harmer, CISO Supabase

Tester vos politiques avec pgTAP

La sécurité ne s'arrête pas une fois l'application déployée. Etienne a montré comment Supabase utilise pgTAP pour tester continuellement les politiques de base de données.

« Vous pouvez prouver que ce que vous croyez sécurisé l'est réellement. Ces tests vous maintiennent honnête. » - Etienne Stalmans, Ingénieur Sécurité Supabase

Chaque test vérifie ce qui compte le plus :

  • Les utilisateurs publics ne voient que les données publiques
  • Les utilisateurs authentifiés ne voient que ce qui leur appartient.
  • Les politiques appliquent systématiquement les limites attendues.

Cette assurance continue garantit que les petites erreurs ne se transforment pas en fuites de données.

Sécurité évolutive

Supabase exécute le RLS pour des millions d'utilisateurs et des charges de travail importantes sans problème.

« Nous l'utilisons partout, même à grande échelle. Aucun problème, aucune excuse. » - Etienne Stalmans, Ingénieur en sécurité Supabase

En appliquant la sécurité au niveau de la base de données, Supabase maintient la logique cohérente, quelle que soit la complexité de l'application.

« Faites-le simplement fonctionner », l'invite dangereuse

Bill a clôturé la session avec un avertissement pour quiconque utilisant l'IA pour générer du code.

« Ce n'est pas parce que ça fonctionne que c'est prêt pour la production. » - Bill Harmer, CISO Supabase
« Si vous demandez à une IA de faire fonctionner quelque chose, elle pourrait supprimer les contrôles de sécurité mêmes qui vous protègent. » - Bill Harmer, CISO Supabase

Les modèles d'IA ne comprennent pas l'intention. Ils feront tout ce qu'il faut pour atteindre l'objectif que vous avez fixé, même si cela signifie désactiver le RLS ou supprimer la logique d'authentification.

Le danger n'est pas d'utiliser l'IA, c'est de l'utiliser sans encadrement.

« Le modèle n'est pas malveillant. Il fait son travail. Mais il ne connaît pas votre intention. C'est votre travail. » - Bill Harmer, CISO Supabase

Développer de manière sécurisée par défaut

La sécurité n'est pas un obstacle. C'est ainsi que vous avancez plus vite sans remettre en question ce que vous livrez.

Supabase prouve que lorsque la sécurité réside au niveau de la couche de données, elle fait partie intégrante de votre façon de construire, et non une réflexion après coup.

Regardez la Masterclass complète.

Partager :

https://www.aikido.dev/blog/supabase-approach-to-secure-by-default-development

Abonnez-vous pour les actualités sur les menaces.

Commencez dès aujourd'hui, gratuitement.

Commencer gratuitement
Sans carte bancaire

Sécurisez votre environnement dès maintenant.

Sécurisez votre code, votre cloud et votre environnement d’exécution dans un système centralisé unique.
Détectez et corrigez les vulnérabilités rapidement et automatiquement.

Aucune carte de crédit requise | Résultats en 32 secondes.