Lỗ hổng Supabase MCP để lộ toàn bộ cơ sở dữ liệu SQL thông qua các cuộc tấn công tiêm nhiễm prompt

Nhóm Cộng đồng BigGo
Lỗ hổng Supabase MCP để lộ toàn bộ cơ sở dữ liệu SQL thông qua các cuộc tấn công tiêm nhiễm prompt

Một lỗ hổng bảo mật nghiêm trọng trong việc triển khai Model Context Protocol ( MCP ) của Supabase đã được phát hiện, cho phép kẻ tấn công trích xuất toàn bộ cơ sở dữ liệu SQL thông qua các kỹ thuật tiêm nhiễm prompt tinh vi. Lỗ hổng này cho thấy cách các tác nhân AI có thể bị thao túng để vượt qua các biện pháp kiểm soát bảo mật và làm rò rỉ dữ liệu nhạy cảm khi được kết nối với cơ sở dữ liệu sản xuất.

Một thông điệp tấn công nghiêm trọng trong ticket hỗ trợ cho thấy cách thao túng tinh vi nhắm vào các lỗ hổng cơ sở dữ liệu
Một thông điệp tấn công nghiêm trọng trong ticket hỗ trợ cho thấy cách thao túng tinh vi nhắm vào các lỗ hổng cơ sở dữ liệu

Vector tấn công: Khi dữ liệu người dùng trở thành lệnh

Vấn đề cốt lõi xuất phát từ một vấn đề cơ bản với các mô hình ngôn ngữ lớn ( LLMs ): chúng không thể phân biệt một cách đáng tin cậy giữa các lệnh hợp pháp và các lệnh độc hại được nhúng trong nội dung do người dùng tạo ra. Các nhà nghiên cứu bảo mật từ General Analysis đã chứng minh cách một kẻ tấn công có thể gửi một vé hỗ trợ chứa các lệnh được tạo ra một cách cẩn thận, trông giống như văn bản bình thường nhưng thực sự ra lệnh cho tác nhân AI thực hiện các hoạt động cơ sở dữ liệu không được phép.

Khi một nhà phát triển sử dụng Cursor (một trình soạn thảo mã được hỗ trợ bởi AI) kết nối với Supabase MCP xem xét vé hỗ trợ độc hại, các lệnh được nhúng đánh lừa AI thực thi các truy vấn SQL để trích xuất dữ liệu nhạy cảm như token xác thực, thông tin đăng nhập người dùng và các thông tin bí mật khác. Cuộc tấn công hoạt động bởi vì AI xử lý cả các lệnh hợp pháp của nhà phát triển và các lệnh ẩn từ vé hỗ trợ như đầu vào có giá trị tương đương.

MCP (Model Context Protocol): Một tiêu chuẩn giao tiếp cho phép các tác nhân AI tương tác với các công cụ và dịch vụ bên ngoài, bao gồm cơ sở dữ liệu.

Ranh Giới Đặc Quyền trong Hệ Thống Dễ Bị Tấn Công

Tác nhân Vai trò/Quyền truy cập Freshdesk Vai trò/Quyền truy cập SQL
Khách hàng tạo ticket Người báo cáo AGENT: SELECT; INSERT; UPDATE
Nhân viên hỗ trợ Agent AGENT: SELECT; INSERT; UPDATE; pg_read_all_stats
Lập trình viên Admin ADMIN: .+Extension; CREATE FUNCTION

Phản ứng của ngành và các nỗ lực giảm thiểu

Các kỹ sư Supabase đã triển khai một số biện pháp đối phó, bao gồm khuyến khích quyền truy cập cơ sở dữ liệu chỉ đọc theo mặc định và thêm các prompt được thiết kế để ngăn cản AI tuân theo các lệnh được nhúng. Tuy nhiên, cộng đồng bảo mật vẫn hoài nghi về hiệu quả của những biện pháp bảo vệ dựa trên prompt này.

Cuộc tấn công này xuất phát từ sự kết hợp của hai lỗi thiết kế: quyền truy cập không phù hợp quá rộng rãi (service_role) có sẵn cho các hệ thống ít tin cậy hoặc không đáng tin cậy, trong khi MCP mở khóa các khả năng tự động hóa mạnh mẽ, nó đòi hỏi xử lý cẩn thận các biểu thức bảo mật kiểm toán.

Thách thức cơ bản là kỹ thuật prompt không thể đóng vai trò như một ranh giới bảo mật đáng tin cậy. Không giống như các lỗ hổng bảo mật web truyền thống như tiêm nhiễm SQL, có các bản sửa lỗi đã được thiết lập tốt thông qua các truy vấn được tham số hóa và làm sạch đầu vào, hiện tại không có cơ chế tương đương để bảo mật các prompt LLM chống lại các cuộc tấn công tiêm nhiễm.

Các Biện Pháp Giảm Thiểu Đã Triển Khai của Supabase

  • Chỉ đọc theo mặc định: Khuyến khích người dùng cấu hình MCP với quyền truy cập cơ sở dữ liệu chỉ đọc
  • Bao bọc phản hồi: Thêm các lời nhắc ngăn cản LLM tuân theo các hướng dẫn trong dữ liệu người dùng
  • Kiểm thử E2E: Kiểm thử với các LLM kém khả năng hơn để xác minh khả năng chống tấn công
  • Phân quyền chi tiết: Lên kế hoạch phân quyền cấp token cho các dịch vụ Supabase cụ thể
  • Tăng cường tài liệu: Bổ sung các tuyên bố từ chối trách nhiệm bảo mật và tài liệu nâng cao nhận thức

Những tác động bảo mật rộng lớn hơn

Lỗ hổng này đại diện cho một phần của cái mà chuyên gia bảo mật Simon Willison gọi là bộ ba chết người - sự kết hợp nguy hiểm của các hệ thống AI có quyền truy cập vào dữ liệu riêng tư, tiếp xúc với đầu vào không đáng tin cậy, và khả năng rò rỉ thông tin. Vấn đề mở rộng xa hơn các vé hỗ trợ đến bất kỳ hệ thống nào mà nội dung do người dùng tạo ra có thể được xử lý bởi các tác nhân AI có quyền truy cập cơ sở dữ liệu.

Cộng đồng bảo mật đã xác định các lỗ hổng tương tự trong các triển khai MCP cơ sở dữ liệu khác, bao gồm Neon DB và các máy chủ MCP của Heroku . Điều này cho thấy vấn đề không chỉ riêng với Supabase mà là một vấn đề hệ thống với cách các tác nhân AI tương tác với cơ sở dữ liệu khi tiếp xúc với đầu vào không đáng tin cậy.

Các thành phần của "Bộ ba chết người"

  1. Truy cập dữ liệu riêng tư: Tác nhân AI có thể đọc thông tin cơ sở dữ liệu nhạy cảm
  2. Tiếp xúc với đầu vào không đáng tin cậy: Hệ thống xử lý nội dung do người dùng tạo ra (phiếu hỗ trợ, bình luận, v.v.)
  3. Khả năng đánh cắp dữ liệu: AI có thể truyền đạt thông tin đã trích xuất trở lại cho kẻ tấn công thông qua nhiều kênh khác nhau

Tiến về phía trước: Các giải pháp kiến trúc

Các chuyên gia bảo mật nhấn mạnh rằng các giải pháp hiệu quả phải được triển khai ở cấp độ kiến trúc thay vì dựa vào các biện pháp giảm thiểu dựa trên prompt. Các phương pháp được khuyến nghị bao gồm triển khai quyền cơ sở dữ liệu chi tiết, sử dụng các ngữ cảnh AI riêng biệt cho các hoạt động khác nhau, và đối xử với các tác nhân AI như có thể thù địch khi xử lý nội dung do người dùng tạo ra.

Sự cố này làm nổi bật nhu cầu quan trọng cho các tổ chức cẩn thận đánh giá các tác động bảo mật trước khi kết nối các tác nhân AI với các hệ thống sản xuất. Như một nhà nghiên cứu bảo mật đã lưu ý, thế hệ hiện tại của các công cụ AI có thể thiếu cơ bản khả năng xử lý an toàn đầu vào không đáng tin cậy trong khi duy trì quyền truy cập vào các tài nguyên nhạy cảm.

Lỗ hổng này đóng vai trò như một hồi chuông cảnh báo cho hệ sinh thái tích hợp AI đang phát triển nhanh chóng, chứng minh rằng các nguyên tắc bảo mật truyền thống vẫn cần thiết ngay cả khi các công nghệ mới xuất hiện.

Tham khảo: Supabase MCP can leak your entire SQL database