FixVibe
Covered by FixVibehigh

Supabase Λίστα ελέγχου ασφαλείας: RLS, API κλειδιά και αποθήκευση

Αυτό το ερευνητικό άρθρο περιγράφει κρίσιμες διαμορφώσεις ασφαλείας για έργα Supabase. Επικεντρώνεται στη σωστή εφαρμογή της ασφάλειας επιπέδου σειράς (RLS) για την προστασία των σειρών βάσης δεδομένων, τον ασφαλή χειρισμό των κλειδιών anon και service_role API και την επιβολή ελέγχου πρόσβασης για κάδους αποθήκευσης για τον μετριασμό των κινδύνων έκθεσης δεδομένων και μη εξουσιοδοτημένης πρόσβασης.

CWE-284CWE-668

Ο γάντζος

Η διασφάλιση ενός έργου Supabase απαιτεί μια πολυεπίπεδη προσέγγιση που εστιάζει στη διαχείριση κλειδιών API, την ασφάλεια της βάσης δεδομένων και τα δικαιώματα αποθήκευσης. [S1] Η εσφαλμένη ρύθμιση παραμέτρων ασφαλείας επιπέδου γραμμής (RLS) ή τα εκτεθειμένα ευαίσθητα κλειδιά μπορεί να οδηγήσουν σε σημαντικά περιστατικά έκθεσης δεδομένων. [S2] [S3]

Τι άλλαξε

Αυτή η έρευνα ενοποιεί τους βασικούς ελέγχους ασφαλείας για περιβάλλοντα Supabase με βάση τις επίσημες οδηγίες αρχιτεκτονικής. [S1] Επικεντρώνεται στη μετάβαση από τις προεπιλεγμένες διαμορφώσεις ανάπτυξης σε στάσεις με σκληρή παραγωγή, ειδικά όσον αφορά τους μηχανισμούς ελέγχου πρόσβασης. [S2] [S3]

Ποιος επηρεάζεται

Οι εφαρμογές που χρησιμοποιούν το Supabase ως Backend-as-a-Service (BaaS) επηρεάζονται, ιδιαίτερα εκείνες που χειρίζονται δεδομένα συγκεκριμένου χρήστη ή ιδιωτικά στοιχεία. [S2] Οι προγραμματιστές που περιλαμβάνουν το κλειδί service_role σε πακέτα από την πλευρά του πελάτη ή αποτυγχάνουν να ενεργοποιήσουν το RLS διατρέχουν υψηλό κίνδυνο. [S1]

Πώς λειτουργεί το ζήτημα

Το Supabase αξιοποιεί την ασφάλεια επιπέδου γραμμής της PostgreSQL για να περιορίσει την πρόσβαση στα δεδομένα. [S2] Από προεπιλογή, εάν το RLS δεν είναι ενεργοποιημένο σε έναν πίνακα, οποιοσδήποτε χρήστης με το κλειδί anon — το οποίο είναι συχνά δημόσιο — μπορεί να έχει πρόσβαση σε όλες τις εγγραφές. [S1] Ομοίως, η αποθήκευση Supabase απαιτεί ρητές πολιτικές για τον καθορισμό των χρηστών ή των ρόλων που μπορούν να εκτελούν λειτουργίες σε κάδους αρχείων. [S3]

Τι παίρνει ένας επιθετικός

Ένας εισβολέας που διαθέτει δημόσιο κλειδί API μπορεί να εκμεταλλευτεί πίνακες που λείπουν από το RLS για να διαβάσει, να τροποποιήσει ή να διαγράψει δεδομένα που ανήκουν σε άλλους χρήστες. [S1] [S2] Η μη εξουσιοδοτημένη πρόσβαση σε κουβάδες αποθήκευσης μπορεί να οδηγήσει στην έκθεση των ιδιωτικών αρχείων χρήστη ή στη διαγραφή κρίσιμων στοιχείων της εφαρμογής. [S3]

Πώς το FixVibe το δοκιμάζει

Το FixVibe το καλύπτει τώρα ως μέρος των επιταγών Supabase. Το baas.supabase-security-checklist-backfill εξετάζει δημόσια Supabase Μεταδεδομένα του κάδου αποθήκευσης, έκθεση ανώνυμων αντικειμένων, ευαίσθητη ονομασία κάδου και σήματα μη δεσμευμένης αποθήκευσης από τα δημόσια ανώνυμα όρια. Οι σχετικοί ζωντανοί έλεγχοι επιθεωρούν την έκθεση κλειδιού ρόλου υπηρεσίας, τη στάση Supabase REST/RLS και τις μετεγκαταστάσεις SQL του αποθετηρίου για έλλειψη RLS.

Τι να διορθώσετε

Να ενεργοποιείτε πάντα την ασφάλεια επιπέδου γραμμής σε πίνακες βάσης δεδομένων και να εφαρμόζετε αναλυτικές πολιτικές για χρήστες με έλεγχο ταυτότητας. [S2] Βεβαιωθείτε ότι χρησιμοποιείται μόνο το κλειδί 'anon' στον κώδικα από την πλευρά του πελάτη, ενώ το κλειδί 'service_role' παραμένει στον διακομιστή. [S1] Διαμορφώστε τον έλεγχο πρόσβασης αποθήκευσης για να διασφαλίσετε ότι οι κάδοι αρχείων είναι ιδιωτικοί από προεπιλογή και ότι η πρόσβαση παρέχεται μόνο μέσω καθορισμένων πολιτικών ασφαλείας. [S3]