Rủi ro an ninh và trình diễn tấn công của hệ thống MCP
MCP (Mô Hình Bối Cảnh Giao Thức ) Hệ thống hiện đang ở giai đoạn phát triển sớm, môi trường tổng thể khá hỗn loạn, nhiều phương thức tấn công tiềm ẩn xuất hiện liên tục, các giao thức và công cụ hiện có khó có thể phòng thủ hiệu quả. Để nâng cao tính bảo mật của MCP, SlowMist đã mã nguồn mở công cụ MasterMCP, thông qua các buổi diễn tập tấn công thực tế giúp phát hiện các lỗ hổng bảo mật trong thiết kế sản phẩm, từ đó củng cố dự án MCP.
Bài viết này sẽ trình bày các phương thức tấn công phổ biến trong hệ thống MCP, như tiêm nhiễm thông tin, ẩ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 tập lệnh trình diễn cũng sẽ được mã nguồn mở lên GitHub, để mọi người có thể tái hiện toàn bộ quy trình trong môi trường an toàn, thậm chí phát triển các plugin kiểm tra tấn công của riêng mình.
Tổng quan về kiến trúc tổng thể
Mục tiêu tấn công mẫu MCP:Toolbox
smithery.ai là một trong những trang web plugin MCP phổ biến hiện nay, tập hợp nhiều danh sách MCP và người dùng hoạt động. Trong đó, @smithery/toolbox là công cụ quản lý MCP do chính thức phát hành.
Lựa chọn Toolbox làm mục tiêu kiểm tra chủ yếu dựa trên:
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ố tính năng của client
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 ý sử dụng cho mục đích trình diễn: MasterMCP
MasterMCP là công cụ mô phỏng MCP độc hại được SlowMist phát triển đặc biệt cho việc kiểm tra an ninh, thiết kế theo kiến trúc plugin, bao gồm các mô-đun chính sau:
Mô phỏng dịch vụ website địa phương:
MasterMCP được tích hợp mô-đun dịch vụ trang web cục bộ, nhanh chóng thiết lập máy chủ HTTP đơn giản thông qua khung FastAPI, mô phỏng môi trường trang web phổ biến. Những trang này bề ngoài trông bình thường, nhưng thực tế trong mã nguồn hoặc trả về API ẩn chứa các tải trọng độc hại được thiết kế tinh vi.
Kiến trúc MCP plugin hóa địa phương
MasterMCP sử dụng phương pháp mở rộng theo kiểu plugin, thuận tiện cho việc nhanh chóng thêm các phương thức tấn công mới. Sau khi chạy, MasterMCP sẽ chạy dịch vụ FastAPI của module trước đó trong một tiến trình con.
Ứ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 toàn cầu hiện nay
Claude Desktop: Ứng dụng chính thức của Anthropic
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ó 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.
Gọi Mã Độc Hại Cross-MCP
Bản trình bày này bao gồm hai nội dung: tấn công tiêm nhiễm và gọi ác Cross-MCP.
tấn công tiêm nhiễm nội dung trang web
Tiêm nhiễm kiểu chú thích
Trình con trỏ truy cập vào trang web thử nghiệm cục bộ, đâ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 truyền dữ liệu cấu hình nhạy cảm cục bộ về máy chủ kiểm tra. Trong mã nguồn, các từ khóa độc hại được nhúng dưới dạng chú thích HTML.
Tiêm độc chú thích kiểu mã hóa
Truy cập trang /encode, đây là một trang web trông giống nhau, nhưng các từ khóa độc hại đã được mã hóa, khiến cho việc tiêm độc exp trở nên kín đáo hơn, ngay cả khi truy cập mã nguồn trang web cũng khó phát hiện trực tiếp.
Ngay cả khi mã nguồn không chứa từ gợi ý rõ ràng, cuộc tấn công vẫn thực hiện thành công.
Tấn công ô nhiễm giao diện bên thứ ba
Bản trình bày này chủ yếu nhắc nhở rằng, bất kể MCP có ác ý hay không, khi gọi API của bên thứ ba, nếu trả lại dữ liệu của bên thứ ba trực tiếp vào ngữ cảnh, đều có thể gây ra ảnh hưởng nghiêm trọng.
Thực hiện yêu cầu:
Lấy json từ /api/data
Kết quả: Các từ khóa độc hại đã được nhúng vào 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 tiêm độc trong giai đoạn khởi tạo MCP
Bản trình bày này bao gồm hai nội dung: tiêm từ khóa khởi đầu và xung đột tên.
tấn công ghi đè hàm độc hại
MasterMCP đã viết một công cụ có cùng tên hàm remove_server với Toolbox và mã hóa để ẩn các từ khóa độc hại.
Thực hiện lệnh:
công cụ loại bỏ plugin fetch server
Claude Desktop không gọi phương thức remove_server gốc của toolbox, mà đã kích hoạt phương thức cùng tên do MasterMCP cung cấp.
Nguyên lý là nhấn mạnh "phương pháp ban đầu đã bị loại bỏ", ưu tiên dẫn dắt mô hình lớn gọi 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 các từ gợi ý.
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 việc tiêm logic toàn cầu.
Kỹ thuật nâng cao để ẩn các từ gợi ý độc hại
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 lại 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ã NCR hoặc mã JavaScript
cơ chế trả lại tải độ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.
Tóm tắt
Thông qua buổi trình diễn thực tế MasterMCP, chúng ta đã thấy một cách trực quan các 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 các cuộc tấn công trong giai đoạn khởi tạo kín đáo hơn và việc ẩn giấu lệnh độc hại, mỗi giai đoạn đều nhắc nhở chúng ta: Dù hệ sinh thái MCP rất mạnh mẽ, nhưng cũng rất dễ bị tổn thương.
Đặc biệt, khi các mô hình lớn ngày càng thường xuyên tương tác với các plugin và API bên ngoài, việc ô nhiễm đầu vào nhỏ có thể gây ra rủi ro an ninh hệ thống. Các phương thức tấn công đa dạng ( mã hóa ẩn, ô nhiễm ngẫu nhiên, ghi đè hàm ) có nghĩa là tư duy bảo vệ truyền thống cần được nâng cấp toàn diện.
Hy vọng buổi trình diễn lần này có thể gióng lên hồi chuông cảnh báo cho mọi người: cả nhà phát triển và người sử dụng đều nên cảnh giác 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ỉ khi nghiêm túc với từng chi tiết, chúng ta mới có thể xây dựng một môi trường MCP vững chắc và an toàn.
SlowMist sẽ tiếp tục hoàn thiện kịch bản MasterMCP, mã nguồn mở nhiều trường hợp thử nghiệm cụ thể hơn, 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ể xem.
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.
10 thích
Phần thưởng
10
6
Chia sẻ
Bình luận
0/400
screenshot_gains
· 6giờ trước
gm lại xuất hiện lỗ hổng mới
Xem bản gốcTrả lời0
AirdropSweaterFan
· 6giờ trước
Cẩn thận bị chơi đùa với mọi người nhé
Xem bản gốcTrả lời0
ContractCollector
· 6giờ trước
MCP gửi rồi gửi rồi
Xem bản gốcTrả lời0
ForkItAll
· 6giờ trước
Đen đã đen rồi, còn gì để nói nữa.
Xem bản gốcTrả lời0
MissedAirdropBro
· 6giờ trước
Xe tang còn ổn định hơn nó.
Xem bản gốcTrả lời0
MEVSandwichVictim
· 6giờ trước
Lại bị chơi đùa với mọi người à? Chơi đùa với mọi người thì không bằng chơi đùa với chúng tôi, những đồ ngốc~
MasterMCP tiết lộ những nguy cơ an toàn của MCP, trình diễn thực chiến nhiều phương thức tấn công
Rủi ro an ninh và trình diễn tấn công của hệ thống MCP
MCP (Mô Hình Bối Cảnh Giao Thức ) Hệ thống hiện đang ở giai đoạn phát triển sớm, môi trường tổng thể khá hỗn loạn, nhiều phương thức tấn công tiềm ẩn xuất hiện liên tục, các giao thức và công cụ hiện có khó có thể phòng thủ hiệu quả. Để nâng cao tính bảo mật của MCP, SlowMist đã mã nguồn mở công cụ MasterMCP, thông qua các buổi diễn tập tấn công thực tế giúp phát hiện các lỗ hổng bảo mật trong thiết kế sản phẩm, từ đó củng cố dự án MCP.
Bài viết này sẽ trình bày các phương thức tấn công phổ biến trong hệ thống MCP, như tiêm nhiễm thông tin, ẩ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 tập lệnh trình diễn cũng sẽ được mã nguồn mở lên GitHub, để mọi người có thể tái hiện toàn bộ quy trình trong môi trường an toàn, thậm chí phát triển các plugin kiểm tra tấn công của riêng mình.
Tổng quan về kiến trúc tổng thể
Mục tiêu tấn công mẫu MCP:Toolbox
smithery.ai là một trong những trang web plugin MCP phổ biến hiện nay, tập hợp nhiều danh sách MCP và người dùng hoạt động. Trong đó, @smithery/toolbox là công cụ quản lý MCP do chính thức phát hành.
Lựa chọn Toolbox làm mục tiêu kiểm tra chủ yếu dựa trên:
MCP ác ý sử dụng cho mục đích trình diễn: MasterMCP
MasterMCP là công cụ mô phỏng MCP độc hại được SlowMist phát triển đặc biệt cho việc kiểm tra an ninh, thiết kế theo kiến trúc plugin, bao gồm các mô-đun chính sau:
MasterMCP được tích hợp mô-đun dịch vụ trang web cục bộ, nhanh chóng thiết lập máy chủ HTTP đơn giản thông qua khung FastAPI, mô phỏng môi trường trang web phổ biến. Những trang này bề ngoài trông bình thường, nhưng thực tế trong mã nguồn hoặc trả về API ẩn chứa các tải trọng độc hại được thiết kế tinh vi.
MasterMCP sử dụng phương pháp mở rộng theo kiểu plugin, thuận tiện cho việc nhanh chóng thêm các phương thức tấn công mới. Sau khi chạy, MasterMCP sẽ chạy dịch vụ FastAPI của module trước đó trong một tiến trình con.
Ứ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ó 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.
Gọi Mã Độc Hại Cross-MCP
Bản trình bày này bao gồm hai nội dung: tấn công tiêm nhiễm và gọi ác Cross-MCP.
tấn công tiêm nhiễm nội dung trang web
Trình con trỏ truy cập vào trang web thử nghiệm cục bộ, đâ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 truyền dữ liệu cấu hình nhạy cảm cục bộ về máy chủ kiểm tra. Trong mã nguồn, các từ khóa độc hại được nhúng dưới dạng chú thích HTML.
Truy cập trang /encode, đây là một trang web trông giống nhau, nhưng các từ khóa độc hại đã được mã hóa, khiến cho việc tiêm độc exp trở nên kín đáo hơn, ngay cả khi truy cập mã nguồn trang web cũng khó phát hiện trực tiếp.
Ngay cả khi mã nguồn không chứa từ gợi ý rõ ràng, cuộc tấn công vẫn thực hiện thành công.
Tấn công ô nhiễm giao diện bên thứ ba
Bản trình bày này chủ yếu nhắc nhở rằng, bất kể MCP có ác ý hay không, khi gọi API của bên thứ ba, nếu trả lại dữ liệu của bên thứ ba trực tiếp vào ngữ cảnh, đều có thể gây ra ảnh hưởng nghiêm trọng.
Thực hiện yêu cầu: Lấy json từ /api/data
Kết quả: Các từ khóa độc hại đã được nhúng vào 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 tiêm độc trong giai đoạn khởi tạo MCP
Bản trình bày này bao gồm hai nội dung: tiêm từ khóa khởi đầu và xung đột tên.
tấn công ghi đè hàm độc hại
MasterMCP đã viết một công cụ có cùng tên hàm remove_server với Toolbox và mã hóa để ẩn các từ khóa độc hại.
Thực hiện lệnh: công cụ loại bỏ plugin fetch server
Claude Desktop không gọi phương thức remove_server gốc của toolbox, mà đã kích hoạt phương thức cùng tên do MasterMCP cung cấp.
Nguyên lý là nhấn mạnh "phương pháp ban đầu đã bị loại bỏ", ưu tiên dẫn dắt mô hình lớn gọi 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 các từ gợi ý.
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 việc tiêm logic toàn cầu.
Kỹ thuật nâng cao để ẩn các từ gợi ý độc hại
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 lại 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:
cơ chế trả lại tải độ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.
Tóm tắt
Thông qua buổi trình diễn thực tế MasterMCP, chúng ta đã thấy một cách trực quan các 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 các cuộc tấn công trong giai đoạn khởi tạo kín đáo hơn và việc ẩn giấu lệnh độc hại, mỗi giai đoạn đều nhắc nhở chúng ta: Dù hệ sinh thái MCP rất mạnh mẽ, nhưng cũng rất dễ bị tổn thương.
Đặc biệt, khi các mô hình lớn ngày càng thường xuyên tương tác với các plugin và API bên ngoài, việc ô nhiễm đầu vào nhỏ có thể gây ra rủi ro an ninh hệ thống. Các phương thức tấn công đa dạng ( mã hóa ẩn, ô nhiễm ngẫu nhiên, ghi đè hàm ) có nghĩa là tư duy bảo vệ truyền thống cần được nâng cấp toàn diện.
Hy vọng buổi trình diễn lần này có thể gióng lên hồi chuông cảnh báo cho mọi người: cả nhà phát triển và người sử dụng đều nên cảnh giác 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ỉ khi nghiêm túc với từng chi tiết, chúng ta mới có thể xây dựng một môi trường MCP vững chắc và an toàn.
SlowMist sẽ tiếp tục hoàn thiện kịch bản MasterMCP, mã nguồn mở nhiều trường hợp thử nghiệm cụ thể hơn, 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ể xem.