16.326 baza na Supabaseu može da čita bilo ko, u više od polovine lični podaci
Firma UpGuard pregledala je oko 300.000 veb-sajtova koji koriste Supabase i našla 16.326 baza podataka čije tabele može da pročita bilo ko sa interneta. Supabase je popularna usluga koja programerima daje gotovu bazu i prijavu korisnika, pa se na nju brzo i lako integrišu aplikacije i sajtovi. U više od polovine otvorenih baza stoje lični podaci, u manjem broju lozinke i tokeni za prijavu, a u nekoliko i podaci koji podsećaju na brojeve platnih kartica. Američki servis za parkiranje vozila pohranio je više od 100.000 zapisa o klijentima sa telefonima i registarskim tablicama, kanadski servis za pomoć pri imigraciji 884 lozinke u čitljivom obliku, a konzulat jedne afričke države u Francuskoj uneo je podatke o 25.000 ljudi. Aplikacija u sebi nosi javni ključ baze, koji je namerno javan, kao ključ od ulaza u zgradu koji ima svaki stanar. Zaštitu daju pravila o tome ko šta u bazi sme da čita, poput brava na vratima stanova. Kad takvih pravila nema, javni ključ otvara sve stanove. Supabase ta pravila od 2025. uključuje kad se tabela pravi, kroz njegov kontrolni panel, ali ne i kad se pravi direktnim naredbama, a upravo tako tabele najčešće prave AI alati za programiranje. UpGuard navodi da je više od 60 odsto novih baza napravljeno uz pomoć takvih alata, ali ne može da potvrdi koliko je otvorenih baza nastalo na taj način. Šef bezbednosti Supabasea Bil Harmer kaže da su projekti podrazumevano bezbedni i da je bezbednost podeljena odgovornost: kompanija daje bezbedna podešavanja, a korisnici odlučuju kako će podesiti svoje projekte.
Aplikacija radi, korisnici se prijavljuju, podaci se čuvaju, i sve izgleda ok. Ali šta ako neko pokuša da pročita nešto što mu nije namenjeno? AI alati za programiranje manifestaciju problema mogu dodatno da ubrzaju, jer prave ono što je traženo bez dodatnih provera, ako im tako nije navedeno. Supabase ima pravo kad kaže da je odgovornost podeljena, ali podela može da funkcioniše samo kad svi znaju šta treba da rade. Na isti način se i kod nas prave sajtovi za zakazivanje, prijave za kurseve, male prodavnice i studentski projekti, dakle sve ono što čuva imena, telefone i adrese ljudi koji aplikaciji veruju. Proveriti prava traje nekoliko minuta, otprilike toliko treba i nekome da ustanovi da ih nema.
- U Supabase panelu pokreni Security Advisor i proveri da li je Row Level Security uključen na svakoj tabeli u javnoj šemi
- Za svaku tabelu napiši pravila po kojima korisnik čita samo sopstvene redove, pa ih testiraj prijavom kao neki drugi korisnik
- Ne stavljaj service_role ključ u kod aplikacije ili pregledača; u deo koji vidi korisnik ide samo anon ključ
- Kad AI alat pravi tabele, izričito zatraži da uključi Row Level Security i pregledaj SQL pre nego što ga pokreneš
- Lozinke ne čuvaj u sopstvenim tabelama, nego koristi ugrađenu prijavu Supabase Auth, koja ih čuva zaštićene