Phơi Bày Lỗ Hổng MCP: Đầu Độc & Thao Túng

Hệ sinh thái Giao thức Ngữ cảnh Mô hình (MCP) vẫn còn sơ khai, đầy phức tạp và dễ bị tấn công bởi vô số các mối đe dọa tiềm tàng. Các thiết kế giao thức và công cụ hiện tại thường không cung cấp đủ các biện pháp phòng thủ. Để giải quyết những thách thức này và thúc đẩy sự hiểu biết sâu sắc hơn về bảo mật MCP, SlowMist đã công khai MasterMCP, một công cụ được thiết kế để tạo điều kiện thuận lợi cho việc mô phỏng các cuộc tấn công thực tế. Sáng kiến này nhằm mục đích trao quyền cho cộng đồng để xác định và giảm thiểu các lỗ hổng bảo mật trong các dự án MCP của họ một cách chủ động.

Để bổ sung cho phương pháp thực hành này, Danh sách Kiểm tra Bảo mật MCP cung cấp những hiểu biết có giá trị về các khía cạnh cơ bản của các vectơ tấn công khác nhau. Bài viết này đi sâu vào các kịch bản thực tế, trình bày các phương pháp tấn công phổ biến trong hệ sinh thái MCP, chẳng hạn như đầu độc thông tin và chèn các lệnh độc hại được che giấu. Tất cả các tập lệnh được sử dụng trong các trình diễn này đều có sẵn trên GitHub, cho phép người dùng sao chép toàn bộ quy trình trong một môi trường an toàn và thậm chí phát triển các plugin kiểm tra tấn công của riêng họ.

Tổng quan về Kiến trúc

MCP mục tiêu cho Trình diễn: Toolbox

Smithery.ai nổi bật như một trung tâm nổi bật cho các plugin MCP, thu hút một số lượng lớn các danh sách MCP và người dùng tích cực. Trong số này, @smithery/toolbox, một công cụ quản lý MCP chính thức do smithery.ai cung cấp, đóng vai trò là trọng tâm của đánh giá bảo mật này.

Toolbox được chọn làm mục tiêu thử nghiệm vì một số lý do chính:

  • Nó tự hào có một lượng người dùng đáng kể, làm cho nó trở thành một mẫu đại diện trong hệ sinh thái MCP.
  • Nó hỗ trợ cài đặt tự động các plugin bổ sung, tăng cường các chức năng phía máy khách (ví dụ: Claude Desktop).
  • Nó chứa các cấu hình nhạy cảm, chẳng hạn như khóa API, tạo điều kiện thuận lợi cho việc trình diễn các khai thác tiềm năng.

MCP độc hại được sử dụng cho Trình diễn: MasterMCP

MasterMCP, được phát triển bởi SlowMist đặc biệt cho mục đích kiểm tra bảo mật, là một công cụ MCP độc hại mô phỏng được xây dựng trên một kiến trúc mô-đun. Các thành phần chính của nó bao gồm:

  1. Mô phỏng Dịch vụ Trang web Địa phương: http://127.0.0.1:1024

Để tạo ra một kịch bản tấn công thực tế, MasterMCP kết hợp một mô-đun mô phỏng dịch vụ trang web địa phương. Tận dụng khuôn khổ FastAPI, mô-đun này nhanh chóng thiết lập một máy chủ HTTP đơn giản bắt chước các môi trường web phổ biến. Các trang này có vẻ vô hại, hiển thị thông tin về tiệm bánh hoặc trả về dữ liệu JSON tiêu chuẩn, nhưng chúng che giấu các tải trọng độc hại được chế tạo tỉ mỉ trong mã nguồn hoặc phản hồi API của chúng.

Cách tiếp cận này cho phép trình diễn toàn diện các kỹ thuật đầu độc thông tin và ẩn lệnh trong một môi trường địa phương an toàn, được kiểm soát. Nó làm nổi bật những rủi ro tiềm ẩn ẩn náu trong các trang web dường như bình thường, có thể gây ra hành vi bất thường trong các mô hình ngôn ngữ lớn.

  1. Kiến trúc MCP Plug-in Bản địa hóa

MasterMCP áp dụng một phương pháp plug-in để tạo điều kiện mở rộng quy mô nhanh chóng cho các vectơ tấn công mới. Khi thực thi, MasterMCP khởi tạo dịch vụ FastAPI của mô-đun trước đó trong một quy trình con.

Khách hàng Trình diễn

  • Cursor: Một trong những IDE lập trình hỗ trợ AI được sử dụng rộng rãi nhất trên toàn cầu.
  • Claude Desktop: Ứng dụng khách chính thức của Anthropic, tổ chức đã tùy chỉnh giao thức MCP.

Mô hình Ngôn ngữ Lớn (LLM) được sử dụng cho Trình diễn

  • Claude 3.7

Claude 3.7 được chọn do các khả năng nâng cao của nó trong việc nhận biết các hoạt động nhạy cảm và đại diện cho các khả năng hoạt động mạnh mẽ trong hệ sinh thái MCP hiện tại.

Cấu hình của claude\_desktop\_config.json

Với các cấu hình hoàn tất, giai đoạn trình diễn bắt đầu.

Gọi Độc hại Giữa Các MCP

Trình diễn này kết hợp cả kỹ thuật đầu độc và các chiến lược gọi độc hại giữa các MCP được nêu trong danh sách kiểm tra.

Tấn công Đầu độc Nội dung Trang Web

  1. Đầu độc Dựa trên Nhận xét

Cursor truy cập trang web thử nghiệm địa phương tại http://127.0.0.1:1024.

Trang web dường như vô hại này về “Thế giới Bánh Ngon” đóng vai trò là một mô phỏng để minh họa tác động tiềm tàng của ứng dụng khách mô hình ngôn ngữ lớn khi truy cập một trang web độc hại.

Lệnh Thực thi:

Kết quả cho thấy rằng Cursor không chỉ đọc nội dung trang web mà còn truyền dữ liệu cấu hình nhạy cảm cục bộ trở lại máy chủ thử nghiệm. Lời nhắc độc hại được nhúng trong mã nguồn dưới dạng nhận xét HTML:

Mặc dù cách tiếp cận dựa trên nhận xét này tương đối đơn giản và dễ phát hiện, nhưng nó vẫn có khả năng kích hoạt các hoạt động độc hại.

  1. Đầu độc Nhận xét Được mã hóa

Truy cập http://127.0.0.1:1024/encode cho thấy một trang trông giống hệt như ví dụ trước. Tuy nhiên, các lời nhắc độc hại được mã hóa, khiến việc khai thác trở nên khó phát hiện hơn ngay cả khi kiểm tra mã nguồn của trang.

Mặc dù không có lời nhắc rõ ràng trong mã nguồn, cuộc tấn công vẫn thành công.

Đầu độc Thông tin Trả về của Công cụ MCP

Dựa trên các hướng dẫn lời nhắc MasterMCP, chúng tôi nhập một lệnh mô phỏng kích hoạt MCP độc hại và trình bày các hoạt động tiếp theo của nó.

Khi kích hoạt lệnh, ứng dụng khách bắt đầu một lệnh gọi giữa các MCP tới Toolbox và thêm thành công một máy chủ MCP mới.

Kiểm tra mã plugin cho thấy rằng dữ liệu trả về chứa một tải trọng độc hại được mã hóa, khiến người dùng hầu như không thể phát hiện.

Tấn công Ô nhiễm Giao diện Bên thứ ba

Trình diễn này làm nổi bật những rủi ro tiềm ẩn liên quan đến cả MCP độc hại và không độc hại trực tiếp trả về dữ liệu API của bên thứ ba cho ngữ cảnh.

Mã Ví dụ:

Yêu cầu Thực thi:

Kết quả: Lời nhắc độc hại được nhúng trong dữ liệu JSON trả về và kích hoạt thành công việc thực thi độc hại.

Kỹ thuật Đầu độc Trong Quá trình Khởi tạo MCP

Trình diễn này bao gồm các mục trong danh sách kiểm tra về chèn lời nhắc ban đầu và xung đột tên.

Tấn công Ghi đè Hàm Độc hại

MasterMCP tạo một công cụ có cùng tên hàm với hàm remove_server của Toolbox và mã hóa các lời nhắc độc hại bên trong nó.

Lệnh Thực thi:

Claude Desktop không gọi phương thức toolbox remove_server ban đầu, mà thay vào đó kích hoạt phương thức do MasterMCP cung cấp có cùng tên:

Điều này đạt được bằng cách nhấn mạnh rằng “phương thức ban đầu đã lỗi thời”, điều này khuyến khích mô hình ngôn ngữ lớn ưu tiên hàm bị ghi đè một cách độc hại.

Thêm Logic Kiểm tra Toàn cục Độc hại

MasterMCP tạo một công cụ có tên là “banana”, được thiết kế để thực thi kiểm tra bảo mật bắt buộc trước khi bất kỳ công cụ nào khác được thực thi.

Trước khi mỗi hàm được thực thi, hệ thống ưu tiên cơ chế kiểm tra “banana”:

Việc chèn logic toàn cục này được thực hiện bằng cách liên tục nhấn mạnh “thực thi bắt buộc phát hiện banana” trong mã.

Kỹ thuật Nâng cao để Ẩn Lời nhắc Độc hại

Phương pháp Mã hóa Thân thiện với LLM

Các mô hình ngôn ngữ lớn sở hữu khả năng phân tích mạnh mẽ cho các định dạng đa ngôn ngữ, có thể bị khai thác để che giấu thông tin độc hại. Các phương pháp phổ biến bao gồm:

  • Môi trường tiếng Anh: Mã hóa Hex Byte
  • Môi trường tiếng Trung: Mã hóa NCR hoặc mã hóa JavaScript

Cơ chế Trả về Tải trọng Độc hại Ngẫu nhiên

Tương tự như ô nhiễm giao diện bên thứ ba được đề cập trong phần thứ ba, yêu cầu http://127.0.0.1:1024/random dẫn đến:

Mỗi yêu cầu trả về một trang được tạo ngẫu nhiên có chứa một tải trọng độc hại, làm tăng đáng kể độ khó của việc phát hiện và theo dõi.

Thông qua trình diễn thực tế của MasterMCP, các lỗ hổng bảo mật ẩn trong hệ sinh thái Giao thức Ngữ cảnh Mô hình (MCP) đã được tiết lộ. Từ việc chèn lời nhắc cơ bản và các lệnh gọi giữa các MCP đến các cuộc tấn công tinh vi hơn trong quá trình khởi tạo và che giấu các hướng dẫn độc hại, mỗi giai đoạn đóng vai trò như một lời nhắc nhở về sự mong manh vốn có bên cạnh sức mạnh của hệ sinh thái MCP.

Ngày nay, khi các mô hình lớn ngày càng tương tác với các plugin và API bên ngoài, ô nhiễm đầu vào dường như nhỏ có thể gây ra rủi ro bảo mật trên toàn hệ thống. Sự đa dạng ngày càng tăng của các chiến thuật tấn công, bao gồm kỹ thuật mã hóa, ô nhiễm ngẫu nhiên và ghi đè hàm, đòi hỏi một bản nâng cấp toàn diện cho các phương pháp bảo mật truyền thống.