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 в качестве серверной части как услуги (BaaS), особенно те, которые обрабатывают пользовательские данные или частные активы. [S2] Разработчики, которые включают ключ service_role в клиентские пакеты или не включают RLS, подвергаются высокому риску. [S1]

Как работает проблема

Supabase использует безопасность уровня строк PostgreSQL для ограничения доступа к данным. [S2] По умолчанию, если RLS не включен для таблицы, любой пользователь с ключом anon, который часто является общедоступным, может получить доступ ко всем записям. [S1] Аналогично, Supabase Storage требует явных политик для определения того, какие пользователи или роли могут выполнять операции с файловыми сегментами. [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]