FixVibe
Covered by FixVibehigh

Danh sách kiểm tra bảo mật của Supabase: Khóa và bộ lưu trữ RLS, API

Bài viết nghiên cứu này phác thảo các cấu hình bảo mật quan trọng cho các dự án Supabase. Nó tập trung vào việc triển khai thích hợp Bảo mật cấp hàng (RLS) để bảo vệ các hàng cơ sở dữ liệu, xử lý an toàn các khóa anon và service_role API, đồng thời thực thi kiểm soát truy cập cho các nhóm lưu trữ để giảm thiểu rủi ro lộ dữ liệu và truy cập trái phép.

CWE-284CWE-668

Cái móc

Bảo mật dự án Supabase yêu cầu cách tiếp cận nhiều lớp tập trung vào quản lý khóa API, bảo mật cơ sở dữ liệu và quyền lưu trữ. [S1] Bảo mật cấp hàng được định cấu hình không đúng cách (RLS) hoặc các khóa nhạy cảm bị lộ có thể dẫn đến sự cố lộ dữ liệu nghiêm trọng. [S2] [S3]

Điều gì đã thay đổi

Nghiên cứu này hợp nhất các biện pháp kiểm soát bảo mật cốt lõi cho môi trường Supabase dựa trên các nguyên tắc kiến trúc chính thức. [S1] Nó tập trung vào quá trình chuyển đổi từ cấu hình phát triển mặc định sang trạng thái cứng hóa trong sản xuất, đặc biệt là liên quan đến cơ chế kiểm soát truy cập. [S2] [S3]

##Ai bị ảnh hưởng

Các ứng dụng sử dụng Supabase làm Dịch vụ phụ trợ (BaaS) bị ảnh hưởng, đặc biệt là các ứng dụng xử lý dữ liệu dành riêng cho người dùng hoặc tài sản riêng tư. [S2] Các nhà phát triển đưa khóa service_role vào các gói phía máy khách hoặc không kích hoạt RLS có nguy cơ cao. [S1]

Vấn đề diễn ra như thế nào

Supabase tận dụng Bảo mật cấp hàng của PostgreSQL để hạn chế quyền truy cập dữ liệu. [S2] Theo mặc định, nếu RLS không được bật trên bảng, bất kỳ người dùng nào có khóa anon—thường ở chế độ công khai—có thể truy cập tất cả các bản ghi. [S1] Tương tự, Supabase Storage yêu cầu các chính sách rõ ràng để xác định người dùng hoặc vai trò nào có thể thực hiện các thao tác trên nhóm tệp. [S3]

Kẻ tấn công nhận được gì

Kẻ tấn công sở hữu khóa API công khai có thể khai thác các bảng bị thiếu RLS để đọc, sửa đổi hoặc xóa dữ liệu của người dùng khác. [S1] [S2] Truy cập trái phép vào nhóm lưu trữ có thể dẫn đến việc lộ các tệp người dùng riêng tư hoặc xóa các tài sản ứng dụng quan trọng. [S3]

FixVibe kiểm tra nó như thế nào

FixVibe hiện đề cập đến vấn đề này như một phần của quá trình kiểm tra Supabase. baas.supabase-security-checklist-backfill đánh giá siêu dữ liệu nhóm lưu trữ Supabase công khai, hiển thị danh sách đối tượng ẩn danh, đặt tên nhóm nhạy cảm và tín hiệu lưu trữ không giới hạn từ ranh giới anon công khai. Các bước kiểm tra trực tiếp có liên quan sẽ kiểm tra mức độ hiển thị của khóa vai trò dịch vụ, trạng thái Supabase REST/RLS và lưu trữ các hoạt động di chuyển SQL để phát hiện RLS bị thiếu.

Cần khắc phục điều gì

Luôn bật Bảo mật cấp hàng trên các bảng cơ sở dữ liệu và triển khai các chính sách chi tiết cho người dùng được xác thực. [S2] Đảm bảo rằng chỉ khóa 'anon' được sử dụng trong mã phía máy khách, trong khi khóa 'service_role' vẫn còn trên máy chủ. [S1] Định cấu hình Kiểm soát truy cập bộ nhớ để đảm bảo rằng các nhóm tệp ở chế độ riêng tư theo mặc định và quyền truy cập chỉ được cấp thông qua các chính sách bảo mật đã xác định. [S3]