
Claude Skill qui audite vos projets pour les erreurs de configuration RLS, les clés exposées, les contournements d'authentification et les vulnérabilités de stockage. 27 anti-patrons issus de CVE-2025-48757 et de 10 études de sécurité. Sûr pour la production.
Une compétence Claude qui audite vos bases de données backend pour les vulnérabilités de sécurité.
Déposez-la dans Claude Code, Cursor ou tout environnement Claude. Dites « audite ma base de données » et obtenez un rapport de sécurité complet avec le code de correction exact — en quelques minutes, pas en jours.
Plus de 170 applications Lovable ont été compromises. 20,1 millions de lignes ont été exposées parmi les startups YC. Environ 87 000 instances MongoDB ont été laissées vulnérables à MongoBleed (CVE-2025-14847, CISA KEV). 1,8 million de mots de passe Firebase ont fuité lors d'un seul incident en 2025. 45 % du code généré par IA introduit des vulnérabilités OWASP Top 10. Database Sentinel vérifie si votre configuration de sécurité fonctionne réellement — pas seulement si elle est présente.
Database Sentinel effectue un audit de sécurité en 7 étapes sur le(s) backend(s) utilisé(s) par votre projet :
tx=rollback, collections canaries, détecteur MongoBleed sur option)Le raisonnement inter-backend détecte des problèmes que les analyseurs mono-backend ratent (par exemple, un UID Firebase Auth considéré comme fiable par une API Postgres sans vérification JWT).
| Phase | Backend | Statut |
|---|---|---|
| 1 | Supabase | ✅ livré |
| 2 | MongoDB (auto-hébergé + Atlas) | ✅ livré |
| 3 | Firebase (Firestore / RTDB / Storage / Functions / Remote Config) | 🚧 planifié |
| 4 | PostgreSQL (auto-hébergé, y compris pgBouncer) | 🚧 planifié |
| 5 | MySQL (auto-hébergé) | 🚧 planifié |
| 6 | Analyse des interactions inter-backend | 🚧 planifié |
| 7 | Distribution + polissage | 🚧 planifié |
Database Sentinel s'appelait auparavant Supabase Sentinel (mono-backend). Le renommage a eu lieu pendant la Phase 1 de l'extension multi-backend. Un shim de rétrocompatibilité dans compat/supabase-sentinel/ préserve l'ancien nom de compétence au moins jusqu'à la prochaine version mineure — les utilisateurs existants ne voient aucune régression.
Clonez la compétence dans le répertoire des compétences de votre projet, ou dans un répertoire central :
git clone https://github.com/Farenhytee/database-sentinel.git ~/claude-skills/database-sentinel
Puis demandez à Claude :
Audite ma base de données
Database Sentinel détectera quel(s) backend(s) votre projet utilise, exécutera les audits correspondants et produira un rapport unifié. Si plusieurs backends sont présents (Firebase Auth + données Postgres, etc.), le rapport inclut une section sur les interactions inter-backend une fois la Phase 6 livrée.
Si vous voulez auditer uniquement un backend spécifique, demandez explicitement :
Audite mon projet Supabase
Audite mon instance MongoDB
Le répartiteur réduit le périmètre.
Copiez le contenu de SKILL.md plus le backends/<name>/workflow.md correspondant dans votre prompt système. Parcourez les 7 étapes avec vos identifiants.
| Sévérité | Patron | Quoi |
|---|---|---|
| 🔴 CRITIQUE | SB-001 RLS_DISABLED | Tables sans sécurité au niveau des lignes — totalement exposées sur Internet |
| 🔴 CRITIQUE | SB-002 SERVICE_ROLE_EXPOSED | Clé service_role dans le code frontend — contourne TOUTE sécurité |
| 🔴 CRITIQUE | SB-003 POLICIES_BUT_NO_RLS | Politiques écrites mais RLS jamais activée — fausse sécurité |
| 🔴 CRITIQUE | SB-005 WRITE_USING_TRUE | INSERT/UPDATE/DELETE avec USING(true) — n'importe qui peut modifier |
| 🟠 ÉLEVÉ | SB-006 USING_TRUE_SELECT | Toutes les lignes lisibles par les utilisateurs anonymes sur des tables sensibles |
| 🟠 ÉLEVÉ | SB-007 VIEW_NO_SECURITY_INVOKER | Les vues contournent RLS, s'exécutent en tant que superutilisateur |
| 🟠 ÉLEVÉ | SB-008 SECURITY_DEFINER_EXPOSED | Fonctions dans le schéma public contournent RLS, appelables via l'API |
| 🟠 ÉLEVÉ | SB-009 USER_METADATA_IN_POLICY | Les politiques référencent des métadonnées modifiables par l'utilisateur — escalade de privilèges |
| 🟠 ÉLEVÉ | SB-010 UPDATE_NO_WITHCHECK | Politiques UPDATE sans WITH CHECK — risque d'assignation en masse |
| 🟠 ÉLEVÉ | SB-011 GHOST_AUTH | Inscriptions avec email non confirmé qui accordent des sessions authentifiées |
| 🟠 ÉLEVÉ | SB-012 STORAGE_NO_RLS | Bucket de stockage sans politiques de contrôle d'accès |
| 🟠 ÉLEVÉ | SB-013 JWT_SECRET_EXPOSED | Secret de signature JWT divulgué — peut forger le token de n'importe quel utilisateur |
| 🟡 MOYEN | + 15 autres patrons | Voir backends/supabase/anti-patterns.md |
| Sévérité | Patron | Quoi |
|---|---|---|
| 🔴 CRITIQUE | MG-SH-001 MongoBleed (CVE-2025-14847, CISA KEV) | Divulgation de mémoire heap pré-auth via un paquet compressé fabriqué. Environ 87K instances exposées lors de la divulgation. |
| 🔴 CRITIQUE | MG-SH-002 Auth désactivé | mongod fonctionnant sans authentification — surface d'attaque du ransomware Meow |
| 🔴 CRITIQUE | MG-SH-003 mongod lié à Internet | --bind_ip_all + 27017 joignable — associé à MG-SH-002 pour compromission totale |
| 🔴 CRITIQUE | MG-AT-001 Liste blanche Atlas 0.0.0.0/0 | Cluster Atlas joignable depuis n'importe où sur Internet |
| 🟠 ÉLEVÉ | MG-SH-004 Contournement d'auth localhost + exécution conteneur | enableLocalhostAuthBypass true + accès docker exec |
| 🟠 ÉLEVÉ | MG-SH-005 JS côté serveur activé | $where / $function / mapReduce joignables — surface NoSQL-RCE |
| 🟠 ÉLEVÉ | MG-SH-006 TLS non requis | Trafic en clair sur le réseau |
| 🟠 ÉLEVÉ | MG-SH-007 Rôle privilégié sur un utilisateur applicatif | L'application se connecte en tant que root / dbAdminAnyDatabase etc. |
| 🟠 ÉLEVÉ | MG-SH-008 Document de rôle auto-modifiable | findByIdAndUpdate(id, req.body) + pas de validateur + champ rôle |
| 🟠 ÉLEVÉ | MG-AT-002 Atlas Function comme passerelle DB | Injection NoSQL sur HTTPS — proliféré après la dépréciation de l'API Data |
| 🟠 ÉLEVÉ | MG-AT-003 Atlas Data API encore dans le code | Déprécié le 30 septembre 2025 ; cassé ET probablement remplacé par des Functions moins auditées |
| 🟡 MOYEN | MG-SH-009 Mongoose < 8.9.5 | CVE-2024-53900 / CVE-2025-23061 — injection $where dans populate-match |
| 🟡 MOYEN | + 8 autres patrons | Voir backends/mongodb/anti-patterns.md |
La sonde réseau MongoBleed (backends/mongodb/mongobleed-probe.md) embarque un détecteur à paquet unique qui confirme l'exploitabilité à l'exécution — vérifié contre mongo:7.0.20 (vulnérable) et mongo:7.0.28 (patché). Il est en lecture seule, verrouillé derrière deux confirmations opt-in, et n'extrait jamais de contenu.