
Abilità Claude che controlla i tuoi progetti per configurazioni errate di RLS, chiavi esposte, bypass di autenticazione e vulnerabilità di storage. 27 anti-pattern provenienti da CVE-2025-48757 e 10 studi di sicurezza. Sicuro per la produzione.
Una skill di Claude che esegue audit di sicurezza sui tuoi database.
Inseriscila in Claude Code, Cursor o qualsiasi ambiente basato su Claude. Dì "esegui audit del mio database" e ottieni un report di sicurezza completo con il codice di correzione esatto — in minuti, non giorni.
Oltre 170 app Lovable sono state violate. Sono stati esposti 20,1 milioni di righe tra le startup Y Combinator. Circa 87.000 istanze MongoDB sono rimaste vulnerabili a MongoBleed (CVE-2025-14847, CISA KEV). 1,8 milioni di password Firebase sono state divulgate in un singolo incidente del 2025. Il 45% del codice generato dall'IA introduce vulnerabilità OWASP Top 10. Database Sentinel verifica se la tua configurazione di sicurezza funziona davvero — non solo se è presente.
Database Sentinel esegue un audit di sicurezza in 7 passaggi sui backend utilizzati dal tuo progetto:
tx=rollback, collezioni canarino, rilevatore MongoBleed opt-in)Il ragionamento cross-backend individua problemi che gli scanner a singolo backend perdono (ad esempio, un UID di Firebase Auth considerato affidabile da un'API Postgres senza verifica JWT).
| Fase | Backend | Stato |
|---|---|---|
| 1 | Supabase | ✅ pubblicata |
| 2 | MongoDB (self-hosted + Atlas) | ✅ pubblicata |
| 3 | Firebase (Firestore / RTDB / Storage / Functions / Remote Config) | 🚧 pianificata |
| 4 | PostgreSQL (self-hosted, incluso pgBouncer) | 🚧 pianificata |
| 5 | MySQL (self-hosted) | 🚧 pianificata |
| 6 | Analisi interazioni cross-backend | 🚧 pianificata |
| 7 | Distribuzione + rifinitura | 🚧 pianificata |
Database Sentinel era precedentemente Supabase Sentinel (singolo backend). La ridenominazione è avvenuta durante la Fase 1 dell'espansione multi-backend. Un forward-compat shim in compat/supabase-sentinel/ preserva il vecchio nome della skill almeno fino alla prossima release minore — gli utenti esistenti non vedono regressioni.
Clona la skill nella directory delle skill del tuo progetto, o in una centrale:
git clone https://github.com/Farenhytee/database-sentinel.git ~/claude-skills/database-sentinel
Poi chiedi a Claude:
Esegui audit del mio database
Database Sentinel rileverà quale backend utilizza il tuo progetto, eseguirà gli audit pertinenti e produrrà un report unificato. Se sono presenti più backend (Firebase Auth + dati Postgres, ecc.), il report includerà una sezione sulle interazioni cross-backend una volta che la Fase 6 sarà disponibile.
Se vuoi eseguire l'audit solo di un backend specifico, chiedi esplicitamente:
Esegui audit del mio progetto Supabase
Esegui audit della mia istanza MongoDB
Il dispatcher restringe l'ambito.
Copia il contenuto di SKILL.md insieme al backends/<nome>/workflow.md corrispondente nel tuo prompt di sistema. Segui i 7 passaggi con le tue credenziali.
| Gravità | Pattern | Cosa |
|---|---|---|
| 🔴 CRITICA | SB-001 RLS_DISABLED | Tabelle senza Row-Level Security — completamente esposte a internet |
| 🔴 CRITICA | SB-002 SERVICE_ROLE_EXPOSED | Chiave service_role nel codice frontend — bypassa TUTTA la sicurezza |
| 🔴 CRITICA | SB-003 POLICIES_BUT_NO_RLS | Policy scritte ma RLS mai abilitato — falsa sicurezza |
| 🔴 CRITICA | SB-005 WRITE_USING_TRUE | INSERT/UPDATE/DELETE con USING(true) — chiunque può modificare |
| 🟠 ALTA | SB-006 USING_TRUE_SELECT | Tutte le righe leggibili da utenti anonimi su tabelle sensibili |
| 🟠 ALTA | SB-007 VIEW_NO_SECURITY_INVOKER | Le viste bypassano RLS, vengono eseguite come superuser |
| 🟠 ALTA | SB-008 SECURITY_DEFINER_EXPOSED | Funzioni nello schema pubblico bypassano RLS, richiamabili tramite API |
| 🟠 ALTA | SB-009 USER_METADATA_IN_POLICY | Le policy fanno riferimento a metadati modificabili dall'utente — escalation privilegi |
| 🟠 ALTA | SB-010 UPDATE_NO_WITHCHECK | Policy UPDATE senza WITH CHECK — rischio mass assignment |
| 🟠 ALTA | SB-011 GHOST_AUTH | Registrazioni con email non confermate concedono sessioni autenticate |
| 🟠 ALTA | SB-012 STORAGE_NO_RLS | Bucket di storage privo di policy di controllo accessi |
| 🟠 ALTA | SB-013 JWT_SECRET_EXPOSED | Segreto di firma JWT divulgato — può forgiare token di qualsiasi utente |
| 🟡 MEDIA | + 15 pattern aggiuntivi | Vedi backends/supabase/anti-patterns.md |
| Gravità | Pattern | Cosa |
|---|---|---|
| 🔴 CRITICA | MG-SH-001 MongoBleed (CVE-2025-14847, CISA KEV) | Divulgazione di memoria heap pre-autenticazione tramite pacchetto compresso fraudolento. ~87K istanze esposte alla divulgazione. |
| 🔴 CRITICA | MG-SH-002 Auth disabilitato | mongod in esecuzione senza autenticazione — superficie d'attacco ransomware Meow |
| 🔴 CRITICA | MG-SH-003 mongod esposto a internet | --bind_ip_all + 27017 raggiungibile — abbinato a MG-SH-002 per compromissione totale |
| 🔴 CRITICA | MG-AT-001 Atlas allowlist 0.0.0.0/0 | Cluster Atlas raggiungibile da qualsiasi parte di internet |
| 🟠 ALTA | MG-SH-004 bypass autenticazione localhost + esecuzione container | enableLocalhostAuthBypass true + accesso docker exec |
| 🟠 ALTA | MG-SH-005 JavaScript lato server abilitato | $where / $function / mapReduce raggiungibili — superficie NoSQL-RCE |
| 🟠 ALTA | MG-SH-006 TLS non richiesto | Traffico in chiaro sulla rete |
| 🟠 ALTA | MG-SH-007 Ruolo privilegiato su utente applicazione | L'app si connette come root / dbAdminAnyDatabase ecc. |
| 🟠 ALTA | MG-SH-008 Documento ruolo auto-modificabile | findByIdAndUpdate(id, req.body) + nessun validatore + campo ruolo |
| 🟠 ALTA | MG-AT-002 Atlas Function come pass-through DB | NoSQL injection su HTTPS — proliferata dopo la deprecazione dell'API Data |
| 🟠 ALTA | MG-AT-003 Atlas Data API ancora nel codice | Deprecata il 30 settembre 2025; rotta E probabilmente ruotata verso Functions meno controllate |
| 🟡 MEDIA | MG-SH-009 Mongoose < 8.9.5 | CVE-2024-53900 / CVE-2025-23061 — injection populate-match $where |
| 🟡 MEDIA | + 8 pattern aggiuntivi | Vedi backends/mongodb/anti-patterns.md |
Il probe di rete MongoBleed (backends/mongodb/mongobleed-probe.md) include un rilevatore a pacchetto singolo che conferma la sfruttabilità in fase di esecuzione — verificato contro mongo:7.0.20 (vulnerabile) e mongo:7.0.28 (corretto). È in sola lettura, protetto da due conferme opt-in, e non estrae mai contenuti.
╔════════════════════════════════════════════════════════╗
║ SENTINEL SECURITY AUDIT ║
╠════════════════════════════════════════════════════════╣
║ Backends: supabase, mongodb ║
║ Scanned: 2026-04-30 14:30 UTC ║
║ Score: 0/100 🔴 ║
║ Summary: 2 backends, 8 findings (3C / 4H / 1M) ║
╚════════════════════════════════════════════════════════╝