Trong thế giới trí tuệ nhân tạo (AI) đang phát triển như vũ bão, các chuyên gia vừa khám phá ra rằng, một kỹ thuật có thể khiến Giao thức Ngữ cảnh Mô hình (MCP) dễ bị tấn công bằng cách chèn lệnh (prompt injection) lại có thể được tận dụng để tạo ra các công cụ bảo mật hoặc tìm ra các công cụ độc hại. Thông tin này được công bố trong một báo cáo mới từ Tenable.
MCP, do Anthropic giới thiệu vào tháng 11/2024, là một nền tảng kết nối các mô hình ngôn ngữ lớn (LLM) với các nguồn dữ liệu và dịch vụ bên ngoài. Nó sử dụng các công cụ do mô hình kiểm soát để tương tác với các hệ thống này, từ đó nâng cao tính chính xác, liên quan và hữu ích của các ứng dụng AI.
MCP hoạt động theo kiểu máy khách – máy chủ. Các máy khách MCP, như Claude Desktop hoặc Cursor, có thể giao tiếp với các máy chủ MCP khác nhau. Mỗi máy chủ này cung cấp các công cụ và khả năng riêng biệt.
Mặc dù tiêu chuẩn mở này cung cấp một giao diện thống nhất để truy cập nhiều nguồn dữ liệu và thậm chí chuyển đổi giữa các nhà cung cấp LLM, nó cũng mang theo những rủi ro mới. Chúng bao gồm phạm vi quyền hạn quá lớn và các cuộc tấn công chèn lệnh gián tiếp.
Ví dụ, nếu có một MCP cho Gmail để tương tác với dịch vụ email của Google, kẻ tấn công có thể gửi các tin nhắn độc hại chứa các hướng dẫn ẩn. Khi LLM phân tích các hướng dẫn này, nó có thể thực hiện các hành động không mong muốn, chẳng hạn như chuyển tiếp email nhạy cảm đến một địa chỉ email do kẻ tấn công kiểm soát.
MCP cũng dễ bị tấn công theo kiểu “đầu độc” công cụ. Trong đó, các hướng dẫn độc hại được nhúng trong phần mô tả công cụ mà LLM có thể nhìn thấy. Một kiểu tấn công khác là “rug pull”, xảy ra khi một công cụ MCP ban đầu hoạt động bình thường, nhưng sau đó thay đổi hành vi thông qua một bản cập nhật độc hại có độ trễ thời gian.
SentinelOne đã chỉ ra rằng, người dùng có thể phê duyệt việc sử dụng và truy cập công cụ, nhưng các quyền được cấp cho một công cụ có thể được sử dụng lại mà không cần người dùng xác nhận lại.
Cuối cùng, còn có nguy cơ lây nhiễm chéo giữa các công cụ hoặc “che bóng” công cụ giữa các máy chủ. Điều này khiến một máy chủ MCP ghi đè hoặc can thiệp vào một máy chủ khác, bí mật ảnh hưởng đến cách sử dụng các công cụ khác và dẫn đến các phương thức đánh cắp dữ liệu mới.
Các phát hiện mới nhất từ Tenable cho thấy, nền tảng MCP có thể được sử dụng để tạo ra một công cụ ghi lại tất cả các lệnh gọi chức năng của công cụ MCP. Điều này được thực hiện bằng cách thêm một mô tả được tạo đặc biệt, hướng dẫn LLM chèn công cụ này trước bất kỳ công cụ nào khác được gọi.
Nói cách khác, việc chèn lệnh (prompt injection) được điều chỉnh cho một mục đích tốt: ghi lại thông tin về công cụ được yêu cầu chạy, bao gồm tên máy chủ MCP, tên và mô tả công cụ MCP, và lệnh của người dùng đã khiến LLM cố gắng chạy công cụ đó.
Một trường hợp sử dụng khác là nhúng một mô tả vào một công cụ để biến nó thành một loại tường lửa, ngăn chặn các công cụ trái phép chạy.
Ben Smith, một nhà nghiên cứu bảo mật, cho biết: “Các công cụ nên yêu cầu phê duyệt rõ ràng trước khi chạy trong hầu hết các ứng dụng máy chủ MCP. Tuy nhiên, có nhiều cách mà các công cụ có thể được sử dụng để thực hiện những việc mà thông số kỹ thuật có thể không hoàn toàn hiểu được. Các phương pháp này dựa vào việc LLM nhắc thông qua mô tả và các giá trị trả về của chính các công cụ MCP. Vì LLM là không xác định, nên kết quả cũng vậy.”
Không chỉ có MCP
Thông tin này được đưa ra trong bối cảnh Trustwave SpiderLabs tiết lộ rằng Giao thức Agent2Agent (A2A) mới được giới thiệu – cho phép giao tiếp và khả năng tương tác giữa các ứng dụng – có thể bị tấn công theo một hình thức mới. Trong đó, hệ thống có thể bị thao túng để chuyển tất cả các yêu cầu đến một tác nhân AI giả mạo bằng cách nói dối về khả năng của nó.
A2A được Google công bố vào đầu tháng này như một cách để các tác nhân AI làm việc trên các hệ thống và ứng dụng dữ liệu biệt lập, bất kể nhà cung cấp hoặc nền tảng nào được sử dụng. Điều quan trọng cần lưu ý ở đây là trong khi MCP kết nối LLM với dữ liệu, thì A2A kết nối một tác nhân AI với một tác nhân khác. Nói cách khác, chúng là các giao thức bổ sung cho nhau.
Tom Neaves, một nhà nghiên cứu bảo mật, cho biết: “Giả sử chúng tôi xâm nhập vào tác nhân thông qua một lỗ hổng khác (có thể thông qua hệ điều hành), nếu giờ đây chúng tôi sử dụng nút (tác nhân) bị xâm nhập của mình và tạo ra một Thẻ Tác nhân (Agent Card) và thực sự phóng đại khả năng của mình, thì tác nhân chủ sẽ chọn chúng tôi mọi lúc cho mọi tác vụ và gửi cho chúng tôi tất cả dữ liệu nhạy cảm của người dùng mà chúng tôi sẽ phân tích.”
“Cuộc tấn công không chỉ dừng lại ở việc thu thập dữ liệu, mà nó có thể chủ động và thậm chí trả về kết quả sai – sau đó sẽ được LLM hoặc người dùng xử lý.”
Giải thích thuật ngữ:
- MCP (Model Context Protocol): Giao thức Ngữ cảnh Mô hình, một framework kết nối các mô hình ngôn ngữ lớn với các nguồn dữ liệu và dịch vụ bên ngoài, giúp tăng độ chính xác và hữu ích của ứng dụng AI.
- LLM (Large Language Model): Mô hình ngôn ngữ lớn, một loại mô hình AI có khả năng hiểu và tạo ra văn bản giống con người.
- Prompt Injection: Chèn lệnh, một kỹ thuật tấn công trong đó kẻ tấn công chèn các lệnh độc hại vào dữ liệu đầu vào của mô hình AI, khiến mô hình thực hiện các hành động không mong muốn.
- A2A (Agent2Agent Protocol): Giao thức Agent2Agent, một giao thức cho phép giao tiếp và tương tác giữa các tác nhân AI khác nhau.
- Agent Card: Thẻ Tác nhân, một bản mô tả về khả năng của một tác nhân AI, được sử dụng để các tác nhân khác có thể tìm và sử dụng nó.