FixVibe
Covered by FixVibehigh

Supabase Sicherheitscheckliste: RLS, API Schlüssel und Speicher

In diesem Forschungsartikel werden kritische Sicherheitskonfigurationen für Supabase-Projekte beschrieben. Der Schwerpunkt liegt auf der ordnungsgemäßen Implementierung der Zeilenebenensicherheit (RLS) zum Schutz von Datenbankzeilen, der sicheren Handhabung von anon- und service_role API-Schlüsseln und der Durchsetzung der Zugriffskontrolle für Speicher-Buckets, um das Risiko einer Datenoffenlegung und eines unbefugten Zugriffs zu verringern.

CWE-284CWE-668

Der Haken

Die Sicherung eines Supabase-Projekts erfordert einen mehrschichtigen Ansatz, der sich auf API-Schlüsselverwaltung, Datenbanksicherheit und Speicherberechtigungen konzentriert. [S1] Eine falsch konfigurierte Sicherheit auf Zeilenebene (RLS) oder offengelegte vertrauliche Schlüssel können zu erheblichen Vorfällen bei der Offenlegung von Daten führen. [S2] [S3]

Was hat sich geändert?

Diese Studie konsolidiert zentrale Sicherheitskontrollen für Supabase-Umgebungen auf der Grundlage offizieller Architekturrichtlinien. [S1] Der Schwerpunkt liegt auf dem Übergang von Standardentwicklungskonfigurationen zu produktionsgehärteten Zuständen, insbesondere im Hinblick auf Zugriffskontrollmechanismen. [S2] [S3]

Wer ist betroffen?

Betroffen sind Anwendungen, die Supabase als Backend-as-a-Service (BaaS) nutzen, insbesondere solche, die benutzerspezifische Daten oder private Vermögenswerte verarbeiten. [S2] Entwickler, die den service_role-Schlüssel in clientseitige Pakete einbinden oder RLS nicht aktivieren, sind einem hohen Risiko ausgesetzt. [S1]

Wie das Problem funktioniert

Supabase nutzt die Zeilenebenensicherheit von PostgreSQL, um den Datenzugriff einzuschränken. [S2] Wenn RLS für eine Tabelle nicht aktiviert ist, kann jeder Benutzer mit dem Schlüssel anon – der oft öffentlich ist – standardmäßig auf alle Datensätze zugreifen. [S1] Ebenso erfordert Supabase Storage explizite Richtlinien, um zu definieren, welche Benutzer oder Rollen Vorgänge an Datei-Buckets ausführen können. [S3]

Was ein Angreifer bekommt

Ein Angreifer, der über einen öffentlichen API-Schlüssel verfügt, kann Tabellen ohne RLS ausnutzen, um Daten anderer Benutzer zu lesen, zu ändern oder zu löschen. [S1] [S2] Unbefugter Zugriff auf Speicher-Buckets kann zur Offenlegung privater Benutzerdateien oder zum Löschen wichtiger Anwendungsressourcen führen. [S3]

Wie FixVibe darauf testet

FixVibe deckt dies jetzt im Rahmen seiner Supabase-Prüfungen ab. baas.supabase-security-checklist-backfill überprüft öffentliche Supabase-Speicher-Bucket-Metadaten, anonyme Objektlisten-Offenlegung, vertrauliche Bucket-Benennung und anongebundene Speichersignale von der öffentlichen anonymen Grenze. Zugehörige Live-Prüfungen prüfen die Offenlegung von Dienstrollenschlüsseln, den Supabase REST/RLS-Status und Repository-SQL-Migrationen auf fehlendes RLS.

Was zu beheben ist

Aktivieren Sie immer die Sicherheit auf Zeilenebene für Datenbanktabellen und implementieren Sie detaillierte Richtlinien für authentifizierte Benutzer. [S2] Stellen Sie sicher, dass im clientseitigen Code nur der Schlüssel „anon“ verwendet wird, während der Schlüssel „service_role“ auf dem Server verbleibt. [S1] Konfigurieren Sie die Speicherzugriffskontrolle, um sicherzustellen, dass Datei-Buckets standardmäßig privat sind und der Zugriff nur durch definierte Sicherheitsrichtlinien gewährt wird. [S3]