Háček
Zabezpečení projektu Supabase vyžaduje vícevrstvý přístup zaměřený na správu klíčů API, zabezpečení databáze a oprávnění k úložišti. [S1] Nesprávně nakonfigurované zabezpečení na úrovni řádků (RLS) nebo odhalené citlivé klíče mohou vést k významným incidentům vystavení dat. [S2] [S3]
Co se změnilo
Tento výzkum konsoliduje základní bezpečnostní kontroly pro prostředí Supabase na základě oficiálních směrnic o architektuře. [S1] Zaměřuje se na přechod od výchozích vývojových konfigurací k produkčně zpevněným pozicím, konkrétně na mechanismy kontroly přístupu. [S2] [S3]
Koho se to týká
Postiženy jsou aplikace využívající Supabase jako Backend-as-a-Service (BaaS), zejména ty, které zpracovávají uživatelsky specifická data nebo soukromý majetek. [S2] Vývojáři, kteří zahrnou klíč service_role do balíčků na straně klienta nebo se jim nepodaří povolit RLS, jsou vystaveni vysokému riziku. [S1]
Jak problém funguje
Supabase využívá zabezpečení na úrovni řádků PostgreSQL k omezení přístupu k datům. [S2] Pokud ve výchozím nastavení není v tabulce povoleno RLS, každý uživatel s klíčem anon – který je často veřejný – má přístup ke všem záznamům. [S1] Podobně úložiště Supabase vyžaduje explicitní zásady pro definování toho, kteří uživatelé nebo role mohou provádět operace se skupinami souborů. [S3]
Co získá útočník
Útočník vlastnící veřejný klíč API může zneužít chybějící tabulky RLS ke čtení, úpravě nebo odstranění dat patřících jiným uživatelům. [S1] [S2] Neoprávněný přístup k segmentům úložiště může vést k odhalení souborů soukromých uživatelů nebo smazání důležitých prostředků aplikace. [S3]
Jak to testuje FixVibe
FixVibe to nyní pokrývá jako součást svých kontrol Supabase. baas.supabase-security-checklist-backfill reviduje veřejná metadata segmentu úložiště, anonymní zobrazení seznamu objektů, citlivé pojmenování segmentu a nevázané signály úložiště z veřejné anonové hranice. Související živé kontroly kontrolují vystavení klíče servisní role, pozici Supabase REST/RLS a migrace SQL úložiště, zda chybí RLS.
Co opravit
Vždy povolte zabezpečení na úrovni řádků v databázových tabulkách a implementujte podrobné zásady pro ověřené uživatele. [S2] Ujistěte se, že v kódu na straně klienta je použit pouze klíč 'anon', zatímco klíč 'service_role' zůstává na serveru. [S1] Nakonfigurujte Řízení přístupu k úložišti, abyste zajistili, že segmenty souborů jsou ve výchozím nastavení soukromé a přístup je udělován pouze prostřednictvím definovaných zásad zabezpečení. [S3]
