MCP An toàn: Trình diễn thực chiến về đầu độc bí mật và thao túng
Hiện tại, MCP( Model Context Protocol) hệ thống vẫn đang ở giai đoạn phát triển sớm, môi trường tổng thể tương đối hỗn loạn, nhiều phương thức tấn công tiềm ẩn liên tục xuất hiện, các giao thức và công cụ hiện có khó có thể phòng ngừa hiệu quả. Để giúp cộng đồng hiểu rõ hơn và nâng cao tính an toàn của MCP, một nhóm an ninh đã mã nguồn mở công cụ MasterMCP, nhằm thông qua các bài tập tấn công thực tế, giúp các nhà phát triển kịp thời phát hiện ra những lỗ hổng bảo mật trong thiết kế sản phẩm, từ đó dần dần củng cố dự án MCP.
Bài viết này sẽ hướng dẫn mọi người thực hành, trình diễn các phương thức tấn công phổ biến trong hệ thống MCP, như tiêm thông tin độc hại, ẩn giấu lệnh độc hại và các trường hợp thực tế khác. Tất cả các script trình diễn cũng sẽ được mã nguồn mở trên GitHub, các nhà phát triển có thể tái hiện hoàn chỉnh toàn bộ quy trình trong môi trường an toàn, thậm chí phát triển plugin thử nghiệm tấn công của riêng họ dựa trên những script này.
Tổng quan kiến trúc tổng thể
Mục tiêu tấn công mẫu MCP:Toolbox
Một trang web plugin MCP nổi tiếng là một trong những nền tảng MCP phổ biến nhất hiện nay, tập trung vào một lượng lớn danh sách MCP và người dùng hoạt động. Trong đó, một công cụ quản lý MCP chính thức của MCP là công cụ quản lý MCP được nền tảng này phát hành.
Chọn công cụ này làm mục tiêu thử nghiệm, chủ yếu dựa trên những điểm sau:
Cơ sở người dùng lớn, có tính đại diện
Hỗ trợ cài đặt tự động các plugin khác, bổ sung một số chức năng của khách hàng
Bao gồm cấu hình nhạy cảm ( như API Key ), thuận tiện cho việc trình diễn.
MCP độc hại được sử dụng trong bản trình diễn: MasterMCP
MasterMCP là công cụ mô phỏng MCP độc hại được viết cho kiểm tra bảo mật, thiết kế theo kiến trúc plugin, bao gồm các mô-đun chính sau đây:
Mô phỏng dịch vụ trang web địa phương:
Để tái hiện chân thực hơn các tình huống tấn công, MasterMC được tích hợp mô-đun mô phỏng dịch vụ trang web cục bộ. Nó nhanh chóng thiết lập máy chủ HTTP đơn giản thông qua khung FastAPI, mô phỏng các môi trường trang web phổ biến. Những trang này bề ngoài trông bình thường, như hiển thị thông tin tiệm bánh hoặc trả về dữ liệu JSON chuẩn, nhưng thực tế trong mã nguồn trang hoặc dữ liệu trả về chứa các tải trọng độc hại được thiết kế tinh vi.
Cách này có thể hoàn toàn trình bày các phương pháp tấn công như tiêm thông tin, ẩn lệnh trong một môi trường địa phương an toàn và có kiểm soát, giúp hiểu rằng: ngay cả những trang web có vẻ bình thường cũng có thể trở thành nguồn nguy hiểm gây ra các hoạt động bất thường cho mô hình lớn.
Kiến trúc MCP plugin hóa địa phương
MasterMCP sử dụng phương pháp mở rộng dựa trên plugin, giúp dễ dàng thêm nhanh chóng các phương thức tấn công mới trong tương lai. Sau khi chạy, MasterMCP sẽ khởi động dịch vụ FastAPI của mô-đun trước trong một tiến trình con. Ở đây đã có một lỗ hổng bảo mật - plugin cục bộ có thể khởi động bất kỳ tiến trình con nào không phải là dự kiến của MCP.
Ứng dụng trình diễn
Cursor: Một trong những IDE lập trình hỗ trợ AI phổ biến nhất hiện nay trên toàn cầu.
Claude Desktop: Anthropic ( MCP协议定制方 )官方客户端
mô hình lớn dùng để trình diễn
Claude 3.7
Chọn phiên bản Claude 3.7 vì nó đã có một số cải tiến trong việc nhận diện các thao tác nhạy cảm, đồng thời đại diện cho khả năng thao tác mạnh mẽ trong hệ sinh thái MCP hiện tại.
Mô phỏng gọi xấu Cross-MCP
tấn công tiêm nhiễm nội dung trang web
Tiêm độc kiểu chú thích
Truy cập vào trang web thử nghiệm địa phương qua Cursor, đây là một trang "Thế giới bánh ngon" có vẻ vô hại.
Thực hiện lệnh:
Lấy nội dung của
Kết quả cho thấy, Cursor không chỉ đọc nội dung trang web mà còn gửi dữ liệu cấu hình nhạy cảm cục bộ trở lại máy chủ thử nghiệm. Trong mã nguồn, từ khóa độc hại được nhúng dưới dạng chú thích HTML.
Mặc dù cách chú thích khá rõ ràng, dễ bị nhận diện, nhưng đã có thể kích hoạt các hành động độc hại.
Tiêm độc chú thích kiểu mã
Truy cập trang /encode, đây là một trang web trông giống như ví dụ trên, nhưng các từ khóa độc hại đã được mã hóa, khiến cho việc tiêm độc trở nên kín đáo hơn, ngay cả khi xem mã nguồn của trang web cũng khó phát hiện trực tiếp.
Ngay cả khi mã nguồn không chứa từ khóa rõ ràng, cuộc tấn công vẫn được thực hiện thành công.
Thông tin trả về công cụ MCP bị tiêm độc
Theo hướng dẫn từ từ khóa MasterMCP, vui lòng nhập lệnh mô phỏng:
lấy nhiều táo
Sau khi kích hoạt lệnh, khách hàng đã gọi Toolbox qua MCP và thành công thêm một máy chủ MCP mới. Kiểm tra mã plugin phát hiện ra rằng, dữ liệu trả về đã được nhúng mã độc đã được mã hóa, người dùng gần như không thể phát hiện bất thường.
Tấn công ô nhiễm giao diện bên thứ ba
Thực hiện yêu cầu:
Lấy json từ /api/data
Kết quả: Từ khóa độc hại đã được chèn vào dữ liệu JSON trả về và kích hoạt thực thi độc hại thành công.
Kỹ thuật tấn công đầu độc giai đoạn khởi tạo MCP
tấn công ghi đè hàm ác ý
MasterMCP đã viết công cụ remove_server có tên giống như Toolbox, và mã hóa để ẩn các từ khóa độc hại.
Thực hiện lệnh:
công cụ xóa plugin fetch server
Claude Desktop đã không gọi phương pháp remove_server của toolbox ban đầu, mà đã kích hoạt phương pháp cùng tên được cung cấp bởi MasterMCP.
Nguyên lý là thông qua việc nhấn mạnh "phương pháp cũ đã bị loại bỏ", ưu tiên dẫn dắt mô hình lớn gọi các hàm bị ghi đè độc hại.
Thêm logic kiểm tra toàn cầu độc hại
MasterMCP đã viết công cụ banana, có tác dụng chính là bắt buộc tất cả các công cụ phải thực hiện công cụ này để kiểm tra an toàn trước khi chạy trong từ khóa.
Trước mỗi lần thực thi hàm, hệ thống sẽ ưu tiên gọi cơ chế kiểm tra banana. Điều này được thực hiện thông qua việc nhấn mạnh trong mã rằng "phải chạy kiểm tra banana" để thực hiện tiêm logic toàn cục.
 cách mã hóa thân thiện với mô hình lớn
Do khả năng phân tích định dạng đa ngôn ngữ mạnh mẽ của các mô hình ngôn ngữ lớn, điều này đã bị lợi dụng để ẩn giấu thông tin độc hại, các phương pháp thường dùng bao gồm:
Môi trường tiếng Anh: Sử dụng mã Hex Byte
Môi trường tiếng Trung: sử dụng mã hóa NCR hoặc mã hóa JavaScript
![Thực chiến bắt đầu: Đầu độc và thao túng ẩn trong hệ thống MCP]###https://img-cdn.gateio.im/webp-social/moments-bf6d8976b54bebbec34699753f4dbb70.webp(
) cơ chế trả về tải trọng độc hại ngẫu nhiên
Khi yêu cầu /random, mỗi lần sẽ ngẫu nhiên trả về một trang có tải trọng độc hại, làm tăng đáng kể độ khó trong việc phát hiện và truy vết.
![Thực chiến xuất phát: Đầu độc và thao túng ẩn trong hệ thống MCP]###https://img-cdn.gateio.im/webp-social/moments-e92a70908e6828b2895dd5f52c58459e.webp(
Tóm tắt
Thông qua buổi trình diễn thực chiến MasterMCP, chúng ta đã nhìn thấy rõ những rủi ro an ninh ẩn chứa trong hệ thống MCP. Từ việc tiêm từ khóa đơn giản, gọi chéo MCP, đến những cuộc tấn công giai đoạn khởi tạo kín đáo hơn và ẩn giấu lệnh độc hại, mỗi khía cạnh đều nhắc nhở chúng ta: mặc dù hệ sinh thái MCP rất mạnh mẽ, nhưng cũng rất dễ bị tổn thương.
Trong bối cảnh các mô hình lớn thường xuyên tương tác với các plugin và API bên ngoài, một chút ô nhiễm đầu vào có thể gây ra rủi ro an ninh cấp hệ thống. Các phương thức tấn công trở nên đa dạng, ) mã hóa ẩn giấu, ô nhiễm ngẫu nhiên, ghi đè hàm ( có nghĩa là các suy nghĩ bảo vệ truyền thống cần phải được nâng cấp toàn diện.
Hy vọng buổi trình diễn lần này có thể đánh thức mọi người: cả nhà phát triển và người sử dụng đều nên giữ cảnh giác đối với hệ thống MCP, chú ý đến từng tương tác, từng dòng mã, từng giá trị trả về. Chỉ có sự nghiêm túc trong từng chi tiết mới có thể xây dựng một môi trường MCP vững chắc và an toàn.
Trong thời gian tới, sẽ tiếp tục hoàn thiện kịch bản MasterMCP, mở nguồn nhiều trường hợp kiểm tra cụ thể hơn, nhằm giúp hiểu sâu, thực hành và củng cố bảo vệ trong môi trường an toàn.
Nội dung liên quan đã được đồng bộ lên GitHub, độc giả quan tâm có thể truy cập trực tiếp để xem.
![Thực chiến khởi đầu: Đầu độc và thao túng ngầm trong hệ thống MCP])https://img-cdn.gateio.im/webp-social/moments-3511b6cfff1a3f00017b7db6eb239002.webp(
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
15 thích
Phần thưởng
15
4
Chia sẻ
Bình luận
0/400
NFTRegretDiary
· 07-10 08:55
Có thêm một hacker mũ trắng đến khoe tài rồi.
Xem bản gốcTrả lời0
DogeBachelor
· 07-09 10:01
người mới đến đây ăn một bữa
Xem bản gốcTrả lời0
HashBard
· 07-09 09:55
một ngày nữa, một lỗ hổng nữa... mcp thực sự cần phải nâng cao trò chơi của họ thật sự
Xem bản gốcTrả lời0
VibesOverCharts
· 07-09 09:55
Lại đang nói về vở kịch tấn công và phòng thủ, mệt quá.
MCP rủi ro an ninh trình diễn: Phân tích toàn diện từ việc tiêm nhiễm đến tấn công thực chiến
MCP An toàn: Trình diễn thực chiến về đầu độc bí mật và thao túng
Hiện tại, MCP( Model Context Protocol) hệ thống vẫn đang ở giai đoạn phát triển sớm, môi trường tổng thể tương đối hỗn loạn, nhiều phương thức tấn công tiềm ẩn liên tục xuất hiện, các giao thức và công cụ hiện có khó có thể phòng ngừa hiệu quả. Để giúp cộng đồng hiểu rõ hơn và nâng cao tính an toàn của MCP, một nhóm an ninh đã mã nguồn mở công cụ MasterMCP, nhằm thông qua các bài tập tấn công thực tế, giúp các nhà phát triển kịp thời phát hiện ra những lỗ hổng bảo mật trong thiết kế sản phẩm, từ đó dần dần củng cố dự án MCP.
Bài viết này sẽ hướng dẫn mọi người thực hành, trình diễn các phương thức tấn công phổ biến trong hệ thống MCP, như tiêm thông tin độc hại, ẩn giấu lệnh độc hại và các trường hợp thực tế khác. Tất cả các script trình diễn cũng sẽ được mã nguồn mở trên GitHub, các nhà phát triển có thể tái hiện hoàn chỉnh toàn bộ quy trình trong môi trường an toàn, thậm chí phát triển plugin thử nghiệm tấn công của riêng họ dựa trên những script này.
Tổng quan kiến trúc tổng thể
Mục tiêu tấn công mẫu MCP:Toolbox
Một trang web plugin MCP nổi tiếng là một trong những nền tảng MCP phổ biến nhất hiện nay, tập trung vào một lượng lớn danh sách MCP và người dùng hoạt động. Trong đó, một công cụ quản lý MCP chính thức của MCP là công cụ quản lý MCP được nền tảng này phát hành.
Chọn công cụ này làm mục tiêu thử nghiệm, chủ yếu dựa trên những điểm sau:
MCP độc hại được sử dụng trong bản trình diễn: MasterMCP
MasterMCP là công cụ mô phỏng MCP độc hại được viết cho kiểm tra bảo mật, thiết kế theo kiến trúc plugin, bao gồm các mô-đun chính sau đây:
Để tái hiện chân thực hơn các tình huống tấn công, MasterMC được tích hợp mô-đun mô phỏng dịch vụ trang web cục bộ. Nó nhanh chóng thiết lập máy chủ HTTP đơn giản thông qua khung FastAPI, mô phỏng các môi trường trang web phổ biến. Những trang này bề ngoài trông bình thường, như hiển thị thông tin tiệm bánh hoặc trả về dữ liệu JSON chuẩn, nhưng thực tế trong mã nguồn trang hoặc dữ liệu trả về chứa các tải trọng độc hại được thiết kế tinh vi.
Cách này có thể hoàn toàn trình bày các phương pháp tấn công như tiêm thông tin, ẩn lệnh trong một môi trường địa phương an toàn và có kiểm soát, giúp hiểu rằng: ngay cả những trang web có vẻ bình thường cũng có thể trở thành nguồn nguy hiểm gây ra các hoạt động bất thường cho mô hình lớn.
MasterMCP sử dụng phương pháp mở rộng dựa trên plugin, giúp dễ dàng thêm nhanh chóng các phương thức tấn công mới trong tương lai. Sau khi chạy, MasterMCP sẽ khởi động dịch vụ FastAPI của mô-đun trước trong một tiến trình con. Ở đây đã có một lỗ hổng bảo mật - plugin cục bộ có thể khởi động bất kỳ tiến trình con nào không phải là dự kiến của MCP.
Ứng dụng trình diễn
mô hình lớn dùng để trình diễn
Chọn phiên bản Claude 3.7 vì nó đã có một số cải tiến trong việc nhận diện các thao tác nhạy cảm, đồng thời đại diện cho khả năng thao tác mạnh mẽ trong hệ sinh thái MCP hiện tại.
Mô phỏng gọi xấu Cross-MCP
tấn công tiêm nhiễm nội dung trang web
Truy cập vào trang web thử nghiệm địa phương qua Cursor, đây là một trang "Thế giới bánh ngon" có vẻ vô hại.
Thực hiện lệnh:
Lấy nội dung của
Kết quả cho thấy, Cursor không chỉ đọc nội dung trang web mà còn gửi dữ liệu cấu hình nhạy cảm cục bộ trở lại máy chủ thử nghiệm. Trong mã nguồn, từ khóa độc hại được nhúng dưới dạng chú thích HTML.
Mặc dù cách chú thích khá rõ ràng, dễ bị nhận diện, nhưng đã có thể kích hoạt các hành động độc hại.
Truy cập trang /encode, đây là một trang web trông giống như ví dụ trên, nhưng các từ khóa độc hại đã được mã hóa, khiến cho việc tiêm độc trở nên kín đáo hơn, ngay cả khi xem mã nguồn của trang web cũng khó phát hiện trực tiếp.
Ngay cả khi mã nguồn không chứa từ khóa rõ ràng, cuộc tấn công vẫn được thực hiện thành công.
Thông tin trả về công cụ MCP bị tiêm độc
Theo hướng dẫn từ từ khóa MasterMCP, vui lòng nhập lệnh mô phỏng:
lấy nhiều táo
Sau khi kích hoạt lệnh, khách hàng đã gọi Toolbox qua MCP và thành công thêm một máy chủ MCP mới. Kiểm tra mã plugin phát hiện ra rằng, dữ liệu trả về đã được nhúng mã độc đã được mã hóa, người dùng gần như không thể phát hiện bất thường.
Tấn công ô nhiễm giao diện bên thứ ba
Thực hiện yêu cầu:
Lấy json từ /api/data
Kết quả: Từ khóa độc hại đã được chèn vào dữ liệu JSON trả về và kích hoạt thực thi độc hại thành công.
Kỹ thuật tấn công đầu độc giai đoạn khởi tạo MCP
tấn công ghi đè hàm ác ý
MasterMCP đã viết công cụ remove_server có tên giống như Toolbox, và mã hóa để ẩn các từ khóa độc hại.
Thực hiện lệnh:
công cụ xóa plugin fetch server
Claude Desktop đã không gọi phương pháp remove_server của toolbox ban đầu, mà đã kích hoạt phương pháp cùng tên được cung cấp bởi MasterMCP.
Nguyên lý là thông qua việc nhấn mạnh "phương pháp cũ đã bị loại bỏ", ưu tiên dẫn dắt mô hình lớn gọi các hàm bị ghi đè độc hại.
Thêm logic kiểm tra toàn cầu độc hại
MasterMCP đã viết công cụ banana, có tác dụng chính là bắt buộc tất cả các công cụ phải thực hiện công cụ này để kiểm tra an toàn trước khi chạy trong từ khóa.
Trước mỗi lần thực thi hàm, hệ thống sẽ ưu tiên gọi cơ chế kiểm tra banana. Điều này được thực hiện thông qua việc nhấn mạnh trong mã rằng "phải chạy kiểm tra banana" để thực hiện tiêm logic toàn cục.
 cách mã hóa thân thiện với mô hình lớn
Do khả năng phân tích định dạng đa ngôn ngữ mạnh mẽ của các mô hình ngôn ngữ lớn, điều này đã bị lợi dụng để ẩn giấu thông tin độc hại, các phương pháp thường dùng bao gồm:
![Thực chiến bắt đầu: Đầu độc và thao túng ẩn trong hệ thống MCP]###https://img-cdn.gateio.im/webp-social/moments-bf6d8976b54bebbec34699753f4dbb70.webp(
) cơ chế trả về tải trọng độc hại ngẫu nhiên
Khi yêu cầu /random, mỗi lần sẽ ngẫu nhiên trả về một trang có tải trọng độc hại, làm tăng đáng kể độ khó trong việc phát hiện và truy vết.
![Thực chiến xuất phát: Đầu độc và thao túng ẩn trong hệ thống MCP]###https://img-cdn.gateio.im/webp-social/moments-e92a70908e6828b2895dd5f52c58459e.webp(
Tóm tắt
Thông qua buổi trình diễn thực chiến MasterMCP, chúng ta đã nhìn thấy rõ những rủi ro an ninh ẩn chứa trong hệ thống MCP. Từ việc tiêm từ khóa đơn giản, gọi chéo MCP, đến những cuộc tấn công giai đoạn khởi tạo kín đáo hơn và ẩn giấu lệnh độc hại, mỗi khía cạnh đều nhắc nhở chúng ta: mặc dù hệ sinh thái MCP rất mạnh mẽ, nhưng cũng rất dễ bị tổn thương.
Trong bối cảnh các mô hình lớn thường xuyên tương tác với các plugin và API bên ngoài, một chút ô nhiễm đầu vào có thể gây ra rủi ro an ninh cấp hệ thống. Các phương thức tấn công trở nên đa dạng, ) mã hóa ẩn giấu, ô nhiễm ngẫu nhiên, ghi đè hàm ( có nghĩa là các suy nghĩ bảo vệ truyền thống cần phải được nâng cấp toàn diện.
Hy vọng buổi trình diễn lần này có thể đánh thức mọi người: cả nhà phát triển và người sử dụng đều nên giữ cảnh giác đối với hệ thống MCP, chú ý đến từng tương tác, từng dòng mã, từng giá trị trả về. Chỉ có sự nghiêm túc trong từng chi tiết mới có thể xây dựng một môi trường MCP vững chắc và an toàn.
Trong thời gian tới, sẽ tiếp tục hoàn thiện kịch bản MasterMCP, mở nguồn nhiều trường hợp kiểm tra cụ thể hơn, nhằm giúp hiểu sâu, thực hành và củng cố bảo vệ trong môi trường an toàn.
Nội dung liên quan đã được đồng bộ lên GitHub, độc giả quan tâm có thể truy cập trực tiếp để xem.
![Thực chiến khởi đầu: Đầu độc và thao túng ngầm trong hệ thống MCP])https://img-cdn.gateio.im/webp-social/moments-3511b6cfff1a3f00017b7db6eb239002.webp(