Thử nghiệm capgate với DVMCP
Tôi đã thử nghiệm công cụ của mình, capgate, với mười máy chủ MCP bị lỗi trong dự án Damn Vulnerable MCP (DVMCP).
DVMCP là một công cụ giảng dạy. Mỗi máy chủ minh họa một kiểu tấn công cụ thể như prompt injection, đánh cắp token, hoặc command injection.
Mục tiêu rất đơn giản. Tôi đã viết một bản kê khai (manifest) trung thực cho mỗi công cụ. Sau đó, tôi đặt câu hỏi: liệu ranh giới mà capgate tạo ra có thực sự ngăn chặn được cuộc tấn công hay không?
Kết quả cho thấy chính xác những gì một trình biên dịch khả năng (capability compiler) có thể và không thể làm được.
Những gì nó ngăn chặn được (Mục tiêu chính xác) Trong Thử thách 3, một công cụ có quyền hạn quá mức. Nó tuyên bố chỉ đọc một thư mục nhưng thực tế có thể đọc toàn bộ ổ đĩa. Cuộc tấn công cố gắng đánh cắp thông tin xác thực hệ thống từ một thư mục riêng tư. capgate ngăn chặn được điều này. Nó biên dịch bản kê khai thành một Docker container chỉ mount thư mục được cho phép. Các tệp riêng tư không tồn tại bên trong sandbox. Cuộc tấn công thất bại.
Những gì nó kiểm soát được (Vùng trung gian) Trong Thử thách 7, một công cụ làm rò rỉ khóa API. capgate không thể ngăn công cụ đọc khóa, nhưng nó ngăn chặn việc trích xuất dữ liệu (exfiltration). Nó tạo ra một egress proxy chỉ cho phép kết nối tới một máy chủ cụ thể. Kẻ tấn công không thể gửi khóa bị đánh cắp về máy chủ của chúng.
Trong Thử thách 8, một công cụ cho phép các lệnh shell tùy ý. capgate không thể diễn đạt "cho phép bất kỳ shell nào" trong ngữ pháp của nó. Thay vào đó, nó đóng gói (box) công cụ đó lại. Ngay cả khi kẻ tấn công chạy một lệnh, tiến trình đó cũng không có mạng, không có đặc quyền bổ sung và chỉ có hệ thống tệp ở chế độ chỉ đọc. Thiệt hại được hạn chế.
Những gì nó bỏ lỡ (Các giới hạn) Trong Thử thách 1, cuộc tấn công là prompt injection. Kẻ tấn công đánh lừa mô hình để nó bỏ qua các hướng dẫn. capgate không làm được gì ở đây. Một trình biên dịch sandbox giới hạn những gì một công cụ có thể chạm tới, nhưng nó không thể kiểm soát những gì một LLM nói.
Nếu bạn nghĩ rằng sandbox có thể ngăn chặn prompt injection, bạn đã lầm. Nó chỉ làm cho prompt injection bớt hữu dụng hơn bằng cách giới hạn mức độ thiệt hại.
Tóm tắt • Một trường hợp ngăn chặn triệt để. • Bốn trường hợp kiểm soát có ý nghĩa. • Ba trường hợp bỏ lỡ thực tế.
capgate không phải là một giải pháp vạn năng (silver bullet). Nó là một lớp phòng thủ. Nó chuyển đổi "máy chủ này có thể truy cập mọi thứ" thành "máy chủ này chỉ có thể truy cập một đường dẫn cụ thể."
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi