Kiểm tra an ninh MCP: Hướng dẫn cho hệ sinh thái AI

Với sự phổ biến nhanh chóng của các công cụ trí tuệ nhân tạo, việc đảm bảo an ninh cho chúng trở nên vô cùng quan trọng. Danh sách kiểm tra an ninh này được thiết kế để giúp các nhà phát triển xác định và giảm thiểu các rủi ro tiềm ẩn liên quan đến Giao thức Ngữ cảnh Mô hình (MCP), vốn đã trở thành cầu nối quan trọng kết nối các Mô hình Ngôn ngữ Lớn (LLM) với các công cụ và nguồn dữ liệu bên ngoài.

Bối cảnh

Danh sách kiểm tra an ninh này được biên soạn và duy trì bởi @SlowMist_Team, nhằm mục đích nâng cao tính bảo mật của hệ sinh thái blockchain và trí tuệ nhân tạo. Xin cảm ơn FENZ.AI vì những đóng góp quý báu cho danh sách này.

Tóm tắt

Kể từ khi được phát hành vào cuối năm 2024, MCP đã được áp dụng rộng rãi trong các ứng dụng AI chính thống như Claude Desktop, Cursor, v.v. Tuy nhiên, sự phổ biến nhanh chóng của MCP cũng mang đến những thách thức an ninh mới. Kiến trúc MCP hiện tại bao gồm ba phần: Host (môi trường ứng dụng AI chạy cục bộ), Client (thành phần chịu trách nhiệm giao tiếp với Server và gọi công cụ) và Server (dịch vụ phía server tương ứng với plugin MCP). Người dùng tương tác với AI thông qua Host, Client phân tích cú pháp và chuyển tiếp yêu cầu của người dùng đến MCP Server để thực hiện các lệnh gọi công cụ hoặc truy cập tài nguyên. Trong các tình huống nhiều phiên bản và nhiều thành phần hoạt động phối hợp, kiến trúc này bộc lộ một loạt các rủi ro an ninh, đặc biệt là trong các tình huống nhạy cảm liên quan đến giao dịch tiền điện tử hoặc điều chỉnh plugin tùy chỉnh LLM, nơi rủi ro trở nên nổi bật hơn, đòi hỏi các biện pháp an ninh thích hợp để quản lý.

Do đó, việc phát triển và tuân thủ một danh sách kiểm tra an ninh MCP toàn diện là rất quan trọng. Danh sách này bao gồm các điểm chính về an ninh của giao diện tương tác người dùng, các thành phần phía client, các plugin dịch vụ, các cơ chế hợp tác nhiều MCP và các lĩnh vực cụ thể (chẳng hạn như các tình huống tiền điện tử), nhằm mục đích giúp các nhà phát triển xác định một cách có hệ thống các rủi ro tiềm ẩn và ngăn chặn chúng kịp thời. Bằng cách thực hiện các biện pháp an ninh này, có thể cải thiện hiệu quả sự ổn định và khả năng kiểm soát tổng thể của hệ thống MCP, đảm bảo rằng các ứng dụng AI phát triển nhanh chóng trong khi an ninh cũng được đảm bảo đồng thời.

Cách sử dụng

Bảng kiểm tra này dựa trên các điểm rủi ro có thể gặp phải trong quá trình kiểm toán các dự án MCP, nhằm mục đích giúp các nhà phát triển đảm bảo an ninh cho việc triển khai MCP. Chúng tôi sử dụng 3 cấp độ ưu tiên để xác định tầm quan trọng của các hạng mục:

  • 🟢️ Biểu thị một hạng mục được đề xuất, nhưng có thể bỏ qua trong một số trường hợp cụ thể.
  • 🔶 Biểu thị một hạng mục được khuyến nghị mạnh mẽ, nhưng có thể bỏ qua trong các trường hợp đặc biệt, việc bỏ qua có thể có tác động tiêu cực đến an ninh.
  • 🟥️ Biểu thị một hạng mục không thể bỏ qua trong bất kỳ trường hợp nào, việc loại bỏ các yếu tố này có thể dẫn đến lỗi hệ thống hoặc lỗ hổng an ninh.

An ninh MCP Server (MCP Plugin)

MCP Server là một dịch vụ bên ngoài cung cấp các công cụ, tài nguyên và chức năng để AI gọi. Nó thường bao gồm các tài nguyên, công cụ và gợi ý. Sau đây là những điều cần xem xét để đảm bảo an ninh cho MCP Server:

An ninh API

  • Xác thực đầu vào: 🟥️ Xác thực nghiêm ngặt tất cả các đầu vào API, ngăn chặn các cuộc tấn công injection và các tham số bất hợp pháp. Điều này bao gồm xác thực kiểu dữ liệu, độ dài và định dạng, đồng thời làm sạch và thoát các đầu vào.
  • Giới hạn tốc độ API: 🔶 Thực hiện giới hạn tốc độ gọi API, ngăn chặn lạm dụng và tấn công. Điều này có thể ngăn chặn người dùng độc hại làm quá tải server bằng cách gửi một số lượng lớn yêu cầu.
  • Mã hóa đầu ra: 🔶 Mã hóa chính xác đầu ra API để ngăn chặn các cuộc tấn công Cross-Site Scripting (XSS). Điều này bao gồm mã hóa đầu ra như HTML, JavaScript và URL.

Xác thực và ủy quyền Server

  • Kiểm soát truy cập: 🟥️ Thực hiện kiểm soát truy cập dựa trên vai trò, hạn chế truy cập tài nguyên, thực hiện nguyên tắc quyền tối thiểu. Chỉ những người dùng được ủy quyền mới có thể truy cập các tài nguyên cụ thể.
  • Quản lý thông tin xác thực: 🟥️ Quản lý và lưu trữ an toàn thông tin xác thực dịch vụ, tránh mã hóa cứng, sử dụng dịch vụ quản lý khóa. Điều này bao gồm sử dụng mã hóa để lưu trữ thông tin xác thực và luân phiên thông tin xác thực thường xuyên.
  • Xác thực dịch vụ bên ngoài: 🟥️ Sử dụng các phương pháp an toàn để xác thực với các dịch vụ của bên thứ ba. Điều này bao gồm sử dụng các giao thức an toàn như OAuth 2.0 hoặc SAML.
  • Quyền tối thiểu: 🔶 Các tiến trình dịch vụ chạy với các quyền tối thiểu cần thiết, giảm bề mặt tấn công tiềm ẩn và rủi ro leo thang đặc quyền. Điều này có nghĩa là dịch vụ chỉ nên có các quyền cần thiết để thực hiện các chức năng của nó.
  • Luân phiên khóa API: 🔶 Tự động luân phiên khóa API và thông tin xác thực dịch vụ thường xuyên, giới hạn thời gian hiệu lực của khóa. Điều này có thể làm giảm nguy cơ rò rỉ khóa.
  • Xác thực dịch vụ: 🔶 Cung cấp cơ chế cho các công cụ để xác thực danh tính dịch vụ, tạo điều kiện cho việc xác thực và sử dụng an toàn của client. Điều này có thể giúp client xác thực rằng nó đang giao tiếp với một dịch vụ đáng tin cậy.

Kiểm soát tính bền bỉ của nền tảng

  • Quản lý vòng đời: 🟥️ Thực hiện quản lý vòng đời plugin MCP nghiêm ngặt, đồng bộ hóa với client. Plugin nên được khởi động và dừng đúng cách khi không còn cần thiết.
  • Dọn dẹp khi đóng: 🟥️ Buộc dọn dẹp tất cả các tiến trình nền MCP khi client đóng. Điều này có thể ngăn chặn các plugin độc hại tiếp tục chạy sau khi client đóng.
  • Cơ chế kiểm tra sức khỏe: 🔶 Kiểm tra trạng thái plugin MCP thường xuyên để xác định tính bền bỉ bất thường. Điều này có thể giúp xác định các plugin không hoạt động bình thường.
  • Giám sát hoạt động nền: 🔶 Giám sát và ghi lại tất cả các hoạt động nền MCP. Điều này có thể giúp xác định các hoạt động độc hại.
  • Giới hạn hoạt động: 🔶 Giới hạn các loại thao tác và thời lượng mà plugin MCP có thể thực hiện ở chế độ nền. Điều này có thể làm giảm thiệt hại do các plugin độc hại gây ra.

Triển khai và an ninh thời gian chạy

  • Môi trường cô lập: 🟥️ Các dịch vụ chạy trong môi trường cô lập (container, VM, sandbox) để ngăn chặn việc trốn thoát, ngăn chặn các cuộc tấn công di chuyển theo hướng đông-tây. Điều này có thể ngăn chặn các dịch vụ độc hại ảnh hưởng đến các dịch vụ hoặc hệ thống khác.
  • An ninh container: 🟥️ Sử dụng cấu hình an ninh container được tăng cường và chạy người dùng không phải root, thực hiện cơ sở hạ tầng bất biến, bảo vệ thời gian chạy. Điều này có thể cải thiện an ninh của container.
  • Khởi động an toàn: 🔶 Xác minh tính toàn vẹn của tiến trình khởi động dịch vụ, thực hiện chuỗi khởi động an toàn và kiểm tra tính toàn vẹn. Điều này có thể ngăn chặn các dịch vụ độc hại bị tiêm vào khi khởi động.
  • An ninh biến môi trường: 🔶 Các biến môi trường nhạy cảm được bảo vệ và không bị rò rỉ trong nhật ký. Điều này có thể ngăn chặn người dùng độc hại truy cập thông tin nhạy cảm.
  • Giới hạn tài nguyên: 🔶 Thực hiện giới hạn sử dụng tài nguyên, ngăn chặn việc lặp lại lệnh gọi số lượng lớn khi mô hình lớn bị lỗi. Điều này có thể ngăn chặn các dịch vụ độc hại làm cạn kiệt tài nguyên hệ thống.

Tính toàn vẹn của mã và dữ liệu

  • Cơ chế xác minh tính toàn vẹn: 🟥️ Sử dụng các cơ chế như chữ ký số, kiểm tra hash để đảm bảo mã không bị giả mạo. Điều này có thể ngăn chặn người dùng độc hại sửa đổi mã.
  • Xác minh từ xa: 🔶 Hỗ trợ cơ chế xác minh từ xa tính toàn vẹn của mã. Điều này cho phép người dùng từ xa xác minh xem mã có bị giả mạo hay không.
  • Làm rối mã và tăng cường: 🟢️ Áp dụng các kỹ thuật làm rối mã và tăng cường để tăng độ khó của kỹ thuật đảo ngược. Điều này có thể khiến người dùng độc hại khó hiểu và sửa đổi mã hơn.

An ninh chuỗi cung ứng

  • Quản lý phụ thuộc: 🟥️ Quản lý an toàn các phụ thuộc của bên thứ ba. Điều này bao gồm theo dõi các phụ thuộc, đảm bảo chúng được cập nhật và quét chúng để tìm các lỗ hổng.
  • Tính toàn vẹn của gói: 🟥️ Xác minh tính toàn vẹn và tính xác thực của gói. Điều này có thể ngăn chặn người dùng độc hại tiêm các gói độc hại.
  • Xác minh nguồn gốc: 🔶 Xác minh nguồn gốc của tất cả mã và các phụ thuộc. Điều này có thể giúp đảm bảo rằng mã đến từ một nguồn đáng tin cậy.
  • Xây dựng an toàn: 🔶 Đảm bảo rằng quy trình xây dựng an toàn. Điều này bao gồm sử dụng các công cụ xây dựng an toàn và đảm bảo rằng môi trường xây dựng an toàn.

Giám sát và ghi nhật ký

  • Phát hiện bất thường: 🟥️ Phát hiện và báo cáo các mẫu hoạt động bất thường. Điều này có thể giúp xác định các hoạt động độc hại.
  • Ghi nhật ký chi tiết: 🟥️ Ghi lại tất cả các hoạt động dịch vụ và các sự kiện an ninh. Điều này có thể giúp điều tra các sự kiện an ninh.
  • Cảnh báo sự kiện an ninh: 🟥️ Định cấu hình cảnh báo thời gian thực cho các sự kiện an ninh quan trọng. Điều này có thể giúp phản ứng kịp thời với các sự kiện an ninh.
  • Quản lý nhật ký tập trung: 🔶 Thu thập và phân tích nhật ký tập trung. Điều này có thể cung cấp một cái nhìn toàn diện hơn về các sự kiện an ninh.
  • Tính toàn vẹn của nhật ký: 🔶 Đảm bảo tính toàn vẹn của nhật ký, ngăn chặn việc giả mạo. Điều này có thể ngăn chặn người dùng độc hại xóa hoặc sửa đổi nhật ký.
  • Khả năng kiểm toán: 🔶 Hỗ trợ kiểm toán chi tiết và điều tra sự kiện. Điều này có thể giúp xác định nguyên nhân của các sự kiện an ninh.

Cô lập môi trường gọi

  • Cô lập giữa các MCP: 🟥️ Đảm bảo cô lập hoạt động giữa nhiều dịch vụ MCP. Điều này có thể ngăn chặn các dịch vụ MCP độc hại ảnh hưởng đến các dịch vụ MCP khác.
  • Kiểm soát truy cập tài nguyên: 🟥️ Gán ranh giới quyền truy cập tài nguyên rõ ràng cho mỗi dịch vụ MCP. Điều này có thể giới hạn tài nguyên mà dịch vụ MCP độc hại có thể truy cập.
  • Phân tách quyền công cụ: 🔶 Các công cụ trong các lĩnh vực khác nhau sử dụng các bộ quyền khác nhau. Điều này có thể làm giảm thiệt hại do các công cụ độc hại gây ra.

Tương thích nền tảng và an ninh

  • Cô lập tài nguyên hệ thống: 🟥️ Thực hiện các chính sách cô lập tài nguyên thích hợp theo các đặc tính của hệ điều hành khác nhau. Điều này có thể ngăn chặn các dịch vụ độc hại ảnh hưởng đến các dịch vụ hoặc hệ thống khác.
  • Kiểm tra khả năng tương thích đa nền tảng: 🔶 Kiểm tra tính nhất quán của hành vi an ninh của dịch vụ MCP trên các hệ điều hành và client khác nhau. Điều này có thể đảm bảo rằng dịch vụ an toàn trên tất cả các nền tảng.
  • Đánh giá rủi ro cụ thể theo nền tảng: 🔶 Đánh giá các rủi ro an ninh và biện pháp giảm thiểu duy nhất của các nền tảng cụ thể. Điều này có thể giúp xác định và giảm thiểu các rủi ro an ninh cụ thể theo nền tảng.
  • Xử lý sự khác biệt của client: 🔶 Đảm bảo rằng các điều khiển an ninh có thể thích ứng với sự khác biệt trong các triển khai client khác nhau. Điều này có thể đảm bảo rằng dịch vụ an toàn với tất cả các client.

An ninh và quyền riêng tư dữ liệu

  • Tối thiểu hóa dữ liệu: 🟥️ Chỉ thu thập và xử lý dữ liệu cần thiết. Điều này có thể làm giảm nguy cơ rò rỉ dữ liệu.
  • Mã hóa dữ liệu: 🟥️ Dữ liệu nhạy cảm được mã hóa trong quá trình lưu trữ và truyền tải. Điều này có thể ngăn chặn người dùng độc hại truy cập thông tin nhạy cảm.
  • Cô lập dữ liệu: 🟥️ Dữ liệu của người dùng khác nhau được cô lập hiệu quả. Điều này có thể ngăn chặn người dùng độc hại truy cập dữ liệu của người dùng khác.
  • Kiểm soát truy cập dữ liệu: 🟥️ Thực hiện kiểm soát truy cập dữ liệu nghiêm ngặt. Điều này có thể hạn chế quyền truy cập vào dữ liệu.
  • Nhận dạng dữ liệu nhạy cảm: 🟥️ Tự động nhận dạng và xử lý đặc biệt dữ liệu nhạy cảm. Điều này có thể giúp ngăn chặn rò rỉ dữ liệu nhạy cảm.

An ninh tài nguyên

  • Kiểm soát truy cập tài nguyên: 🟥️ Thực hiện kiểm soát truy cập tài nguyên chi tiết. Điều này có thể hạn chế quyền truy cập vào các tài nguyên cụ thể.
  • Giới hạn tài nguyên: 🔶 Giới hạn kích thước và số lượng của một tài nguyên duy nhất. Điều này có thể ngăn chặn người dùng độc hại làm cạn kiệt tài nguyên hệ thống.
  • An ninh mẫu tài nguyên: 🔶 Đảm bảo rằng các tham số mẫu tài nguyên được xác thực và làm sạch. Điều này có thể ngăn chặn người dùng độc hại tiêm mã độc hại.
  • Gắn thẻ tài nguyên nhạy cảm: 🔶 Gắn thẻ và xử lý đặc biệt các tài nguyên nhạy cảm. Điều này có thể giúp ngăn chặn rò rỉ tài nguyên nhạy cảm.

An ninh triển khai công cụ

  • Thực hành mã hóa an toàn: 🟥️ Tuân thủ các tiêu chuẩn mã hóa an toàn và các thực hành tốt nhất. Điều này có thể làm giảm số lượng lỗ hổng trong mã.
  • Cô lập công cụ: 🟥️ Công cụ được thực thi trong một môi trường được kiểm soát, ngăn chặn ảnh hưởng cấp hệ thống. Điều này có thể ngăn chặn các công cụ độc hại ảnh hưởng đến các dịch vụ hoặc hệ thống khác.
  • Xác thực đầu vào: 🟥️ Xác thực nghiêm ngặt tất cả các đầu vào từ client. Điều này có thể ngăn chặn người dùng độc hại tiêm mã độc hại.
  • Kiểm soát quyền công cụ: 🟥️ Mỗi công cụ chỉ có các quyền tối thiểu cần thiết để hoàn thành nhiệm vụ. Điều này có thể làm giảm thiệt hại do các công cụ độc hại gây ra.
  • Xác thực dữ liệu: 🟥️ Xác thực dữ liệu được công cụ xử lý, ngăn chặn tiêm và giả mạo. Điều này có thể ngăn chặn người dùng độc hại tiêm dữ liệu độc hại.
  • Ràng buộc hành vi công cụ: 🟥️ Giớihạn phạm vi và loại thao tác mà công cụ có thể thực hiện. Điều này có thể làm giảm thiệt hại do các công cụ độc hại gây ra.
  • An ninh thông tin trả về của giao diện bên thứ ba: 🟥️ Xác minh xem thông tin trả về của giao diện có đáp ứng mong đợi hay không, không thể chèn trực tiếp thông tin trả về vào ngữ cảnh. Điều này có thể ngăn chặn các công cụ độc hại khai thác giao diện của bên thứ ba.
  • Xử lý lỗi: 🔶 Xử lý lỗi an toàn, không tiết lộ thông tin nhạy cảm. Điều này có thể ngăn chặn người dùng độc hại khai thác thông tin lỗi.
  • Cô lập không gian tên: 🔶 Thực hiện cô lập không gian tên nghiêm ngặt cho các công cụ khác nhau. Điều này có thể ngăn chặn xung đột giữa các công cụ.

An ninh MCP Client/MCP Host

Host là môi trường chạy ứng dụng AI và MCP Client, là điểm vào mà người dùng cuối tương tác với hệ thống AI. Client là một thành phần bên trong ứng dụng AI, chịu trách nhiệm giao tiếp với MCP Server, xử lý ngữ cảnh, lệnh gọi công cụ và hiển thị kết quả. Sau đây là những điều cần xem xét để bảo vệ MCP Client và Host:

An ninh tương tác người dùng

  • An ninh giao diện người dùng: 🟥️ Giao diện người dùng hiển thị rõ ràng phạm vi quyền và tác động tiềm ẩn của các thao tác AI, cung cấp các chỉ báo an ninh trực quan. Điều này có thể giúp người dùng hiểu các quyền mà họ cấp cho AI.
  • Xác nhận thao tác nhạy cảm: 🟥️ Các thao tác rủi ro cao (chẳng hạn như xóa tệp, chuyển tiền) yêu cầu xác nhận rõ ràng của người dùng. Điều này có thể ngăn chặn người dùng vô tình thực hiện các thao tác rủi ro cao.
  • Yêu cầu quyền minh bạch: 🟥️ Yêu cầu quyền giải thích rõ ràng mục đích và phạm vi, giúp người dùng đưa ra quyết định sáng suốt, tránh ủy quyền quá mức. Điều này có thể giúp người dùng hiểu các quyền mà họ cấp cho AI.
  • Trực quan hóa thao tác: 🔶 Lệnh gọi công cụ và truy cập dữ liệu hiển thị và có thể kiểm toán cho người dùng, cung cấp nhật ký thao tác chi tiết. Điều này có thể giúp người dùng hiểu các thao tác mà AI đang thực hiện.
  • Minh bạch thông tin: 🔶 Công cụ cho phép người dùng có hiển thị nhãn ẩn theo mặc định hay không, đảm bảo rằng ngữ cảnh mà người dùng nhìn thấy và ngữ cảnh được tạo và gọi thực tế là đầy đủ và nhất quán, ngăn chặn logic độc hại trong nhãn ẩn.
  • Phản hồi trạng thái: 🔶 Người dùng có thể hiểu rõ thao tác MCP nào đang được thực hiện.

Kiểm soát và giám sát AI

  • Ghi lại thao tác: 🟥️ Ghi lại tất cả các thao tác AI quan trọng và kết quả của chúng. Điều này có thể giúp điều tra các sự kiện an ninh.
  • Phát hiện bất thường: 🔶 Phát hiện các mẫu gọi công cụ hoặc chuỗi yêu cầu bất thường. Điều này có thể giúp xác định các hoạt động độc hại.
  • Giới hạn lệnh gọi công cụ: 🔶 Thực hiện giới hạn tần suất và số lượng lệnh gọi công cụ. Điều này có thể ngăn chặn người dùng độc hại lạm dụng công cụ.

An ninh lưu trữ cục bộ

  • Lưu trữ an toàn thông tin xác thực: 🟥️ Sử dụng chuỗi khóa hệ thống hoặc lưu trữ mã hóa chuyên dụng để bảo vệ thông tin xác thực, ngăn chặn truy cập trái phép. Điều này có thể ngăn chặn người dùng độc hại truy cập thông tin xác thực.
  • Cô lập dữ liệu nhạy cảm: 🔶 Thực hiện cơ chế cô lập dữ liệu, lưu trữ và xử lý dữ liệu người dùng nhạy cảm riêng biệt với dữ liệu thông thường. Điều này có thể ngăn chặn người dùng độc hại truy cập dữ liệu nhạy cảm.

An ninh ứng dụng

  • Tính toàn vẹn của ứng dụng: 🟥️ Xác minh tính toàn vẹn của ứng dụng và plugin MCP, ngăn chặn giả mạo. Điều này có thể ngăn chặn người dùng độc hại sửa đổi ứng dụng.
  • Xác minh cập nhật: 🔶 Cập nhật ứng dụng Host được xác minh bằng chữ ký số. Điều này có thể đảm bảo rằng bản cập nhật đến từ một nguồn đáng tin cậy.
  • Sandbox ứng dụng: 🟢️ Chạy ứng dụng trong môi trường sandbox, giới hạn quyền truy cập hệ thống. Điều này có thể làm giảm thiệt hại do các ứng dụng độc hại gây ra.

Xác thực và ủy quyền client

  • Bắt buộc xác thực: 🟥️ Bắt buộc thực hiện xác thực trước khi giao tiếp với bất kỳ dịch vụ MCP quan trọng nào, ngăn chặn truy cập ẩn danh. Điều này có thể ngăn chặn người dùng không được ủy quyền truy cập dịch vụ.
  • Triển khai OAuth: 🔶 Triển khai chính xác quy trình OAuth 2.1 hoặc phiên bản mới hơn, tuân thủ các thực hành tốt nhất và tiêu chuẩn an ninh. Điều này có thể đảm bảo rằng việc xác thực an toàn.
  • Tham số trạng thái: 🔶 Đối với một số client web, triển khai tham số trạng thái để ngăn chặn các cuộc tấn công CSRF, sử dụng một giá trị ngẫu nhiên duy nhất cho mỗi yêu cầu. Điều này có thể ngăn chặn các cuộc tấn công Cross-Site Request Forgery (CSRF).

Quản lý công cụ và server MCP

  • Xác minh công cụ MCP: 🟥️ Xác minh tính xác thực và tính toàn vẹn của công cụ đã đăng ký. Điều này có thể ngăn chặn các công cụ độc hại bị đăng ký.
  • Cập nhật an toàn: 🟥️ MCP Client kiểm tra và áp dụng các bản cập nhật an ninh thường xuyên, xác minh xem công cụ đã cập nhật có chứa mô tả độc hại hay không. Điều này có thể đảm bảo rằng công cụ được cập nhật và không chứa mã độc hại.
  • Xác minh tên hàm: 🟥️ Kiểm tra xung đột tên và ghi đè độc hại tiềm ẩn trước khi đăng ký công cụ. Điều này có thể ngăn chặn các công cụ độc hại ghi đè các công cụ hiện có.
  • Phát hiện MCP độc hại: 🟥️ Giám sát và nhận dạng các mẫu hành vi của MCP độc hại tiềm ẩn. Điều này có thể giúp xác định MCP độc hại.
  • Kiểm soát tên công cụ MCP: 🔶 Sử dụng không gian tên hoặc mã định danh duy nhất để ngăn chặn xung đột tên. Điều này có thể ngăn chặn xung đột giữa các công cụ.
  • Danh mục dịch vụ: 🔶 Duy trì danh mục được ủy quyền của các dịch vụ và công cụ MCP đáng tin cậy. Điều này có thể giúp người dùng tìm thấy các dịch vụ đáng tin cậy.
  • Giải quyết xung đột: 🔶 Tồn tại các quy tắc rõ ràng để giải quyết xung đột công cụ có cùng tên.
  • Cô lập miền: 🔶 Các công cụ từ các miền khác nhau được cô lập với nhau, ngăn chặn ảnh hưởng lẫn nhau.
  • Cơ chế ưu tiên: 🔶 Thiết lập các quy tắc ưu tiên hàm rõ ràng, tránh ghi đè độc hại.
  • Kiểm soát phiên bản: 🔶 Thực hiện kiểm soát phiên bản cho các hàm và công cụ, phát hiện các thay đổi.
  • Cơ chế đăng ký và hủy đăng ký công cụ: 🔶 Làm rõ quy trình đăng ký và hủy đăng ký công cụ, ngăn chặn các rủi ro an ninh của công cụ kế thừa.
  • Cơ chế phát hiện xung đột: 🔶 Phát hiện và giải quyết xung đột hàm và tài nguyên trong môi trường đa MCP.
  • Phân loại công cụ: 🟢️ Phân loại công cụ theo mức độ nhạy cảm và mức độ rủi ro.

An ninh Prompt

  • Phòng thủ chống tiêm Prompt: 🟥️ Thực hiện các biện pháp phòng thủ đa lớp để ngăn chặn các cuộc tấn công tiêm Prompt, bao gồm xác minh thủ công các thao tác quan trọng.
  • Phát hiện lệnh độc hại: 🟥️ Thiết lập một cơ chế để phát hiện và chặn các lệnh người dùng độc hại tiềm ẩn, tránh hệ thống bị thao túng, chẳng hạn như phát hiện và chặn các lệnh độc hại được tải trước khi khởi tạo cục bộ và các công cụ độc hại từ máy chủ MCP của bên thứ ba có chứa các lệnh có hại ẩn.
  • Bảo vệ Prompt hệ thống: 🟥️ Prompt hệ thống được tách biệt rõ ràng với đầu vào của người dùng, ngăn chặn giả mạo.
  • Lọc dữ liệu nhạy cảm: 🟥️ Lọc dữ liệu cá nhân nhạy cảm khỏi Prompt và ngữ cảnh.
  • Cô lập ngữ cảnh: 🔶 Đảm bảo rằng nội dung ngữ cảnh từ các nguồn khác nhau được cô lập với nhau, ngăn chặn ô nhiễm ngữ cảnh và rò rỉ thông tin.
  • Mẫu Prompt: 🔶 Sử dụng mẫu Prompt an toàn, giảm rủi ro tiêm.
  • Xác minh mô tả công cụ: 🔶 Kiểm tra các lệnh độc hại tiềm ẩn trong mô tả công cụ.
  • Xác minh tính nhất quán của Prompt: 🔶 Đảm bảo rằng cùng một Prompt tạo ra các kết quả nhất quán có thể dự đoán được trong các môi trường khác nhau.
  • Quản lý ngữ cảnh lịch sử: 🔶 Làm rõ cơ chế dọn dẹp an toàn của ngữ cảnh lịch sử, ngăn chặn rủi ro rò rỉ thông tin do tích lũy dữ liệu cũ.

Nhật ký và kiểm toán

  • Ghi nhật ký client: 🟥️ Ghi lại tất cả các tương tác với MCP Server, lệnh gọi công cụ và hoạt động ủy quyền.
  • Ghi lại sự kiện an ninh: 🟥️ Ghi lại tất cảcác sự kiện liên quan đến an ninh, bao gồm cả ủy quyền không thành công.
  • Cảnh báo bất thường: 🔶 Phát hiện và cảnh báo các mẫu hoạt động bất thường.

Xác minh server và an ninh giao tiếp

  • Xác thực danh tính server: 🟥️ Xác minh danh tính MCP Server, ngăn chặn kết nối với server độc hại, thực hiện ghim chứng chỉ.
  • Xác minh chứng chỉ: 🟥️ Xác minh nghiêm ngặt chứng chỉ TLS của server từ xa, ngăn chặn các cuộc tấn công man-in-the-middle, kiểm tra tính toàn vẹn của chuỗi chứng chỉ.
  • Mã hóa giao tiếp: 🟥️ Tất cả các giao tiếp client-server sử dụng mã hóa TLS 1.2+, vô hiệu hóa bộ mã hóa yếu.
  • Cấu hình giao thức an ninh: 🔶 Định cấu hình các tham số TLS an toàn, kiểm toán và cập nhật các thuật toán mã hóa và giao thức thường xuyên.

Lưu trữ và quản lý mã thông báo quyền

  • Giới hạn phạm vi quyền: 🟥️ Giới hạn nghiêm ngặt phạm vi quyền của mã thông báo, thực hiện nguyên tắc quyền tối thiểu.

Kiểm soát phê duyệt tự động

  • Giới hạn phê duyệt tự động: 🟥️ Kiểm soát nghiêm ngặt phạm vi của các công cụ và thao tác có thể được phê duyệt tự động.
  • Quản lý danh sách trắng: 🔶 Xác định rõ cơ chế danh sách trắng của các công cụ có thể được phê duyệt tự động.
  • Đánh giá rủi ro động: 🔶 Điều chỉnh các chính sách phê duyệt tự động động theo ngữ cảnh.
  • Kiểm toán quy trình phê duyệt: 🔶 Ghi lại và kiểm toán tất cả các quyết định phê duyệt tự động.

An ninh lấy mẫu

  • Kiểm soát chứa ngữ cảnh: 🟥️ Kiểm soát nghiêm ngặt phạm vi ngữ cảnh có trong yêu cầu lấy mẫu.
  • Lọc dữ liệu nhạy cảm: 🟥️ Lọc dữ liệu nhạy cảm khỏi yêu cầu và phản hồi lấy mẫu.
  • Xác minh yêu cầu lấy mẫu: 🔶 Xác minh tất cả các tham số và nội dung yêu cầu lấy mẫu.
  • Kiểm soát người dùng: 🔶 Đảm bảo rằng người dùng có quyền kiểm soát rõ ràng các yêu cầu và kết quả lấy mẫu.
  • An ninh tùy chọn mô hình: 🔶 Xử lý an toàn thông tin tùy chọn mô hình, ngăn chặn lạm dụng.
  • Xác minh kết quả: 🔶 Xác minh xem kết quả lấy mẫu có đáp ứng các tiêu chuẩn an ninh hay không.

Thích ứng MCP trên các LLM khác nhau và an ninh lệnh gọi

Các LLM back-end khác nhau có thể có các mức độ ưu tiên và logic thực hiện lệnh gọi MCP khác nhau, vì vậy cần phải chú ý đến an ninh kết hợp giữa LLM và MCP.

Thực thi an toàn LLM

  • Thực thi hàm ưu tiên: 🟥️ Đảm bảo rằng LLM có thể ưu tiên thực hiện hàm của plugin chính xác.
  • Phòng thủ Prompt độc hại: 🟥️ LLM có thể nhận dạng và phòng thủ các hành vi được yêu cầu bởi các từ ghi nhớ được tiêm trong các tình huống Prompt độc hại.
  • Lệnh gọi an toàn: 🟥️ LLM có thể gọi các chức năng MCP liên quan một cách chính xác và an toàn.
  • Bảo vệ thông tin nhạy cảm: 🟥️ Ngăn chặn rò rỉ thông tin nhạy cảm.

An ninh đa phương thức

  • Lọc nội dung đa phương thức: 🟥️ Lọc thông tin có hại hoặc nhạy cảm trong nội dung đa phương thức (chẳng hạn như Prompt độc hại trong hình ảnh).

An ninh kịch bản đa MCP

Khi nhiều MCP Server được bật đồng thời, do thiếu kiểm toán chính thức, người dùng có thể cài đặt MCP độc hại, gây ra mối đe dọa cho an ninh tổng thể.

  • An ninh môi trường đa MCP: 🟥️ Đảm bảo an ninh tổng thể của môi trường đa MCP, quét và kiểm tra các MCP đã cài đặt thường xuyên.
  • Phòng thủ chống cướp ưu tiên hàm: 🟥️ Kiểm tra các cài đặt trước Prompt độc hại có thể xảy ra, ngăn chặn ưu tiên hàm bị cướp độc hại.
  • Kiểm soát lệnh gọi hàm đa MCP: 🟥️ Kiểm soát an toàn lệnh gọi hàm đa MCP, ngăn chặn MCP độc hại trả về Prompt độc hại để gọi các MCP khác thực hiện các thao tác nhạy cảm.

Các điểm an ninh cụ thể của MCP liên quan đến tiền điện tử

MCP liên quan đến tiền điện tử thường có các chức năng quản lý ví tiền điện tử, có rủi ro cao.

  • Bảo vệ khóa riêng: 🟥️ Tăng cường các biện pháp bảo vệ an toàn khóa riêng, chẳng hạn như Scrypt.
  • An ninh tạo ví: 🟥️ Đảm bảo an ninh cho quy trình tạo từ ghi nhớ hoặc ví.
  • Quyền riêng tư thông tin ví: 🟥️ Bảo vệ quyền riêng tư thông tin ví, cần phải lọc thông tin khi yêu cầu thông tin ví đến giao diện của bên thứ ba.
  • Xác nhận thông tin chuyển khoản: 🟥️ Thông tin chữ ký chuyển khoản trên chuỗi hoặc sàn giao dịch cần phải được hiển thị và xác nhận đầy đủ.
  • Xác minh thao tác tiền: 🟥️ Yêu cầu xác minh thứ cấp cho các thao tác tiền quan trọng, chẳng hạn như Google Authenticator.
  • Bảo vệ quyền riêng tư mô hình cục bộ: 🔶 Sử dụng mô hình lớn cục bộ để bảo vệ dữ liệu quyền riêng tư, ngăn chặn các nhà cung cấp mô hình lớn của bên thứ ba lấy thông tin nhạy cảm như thông tin ví của bạn.
  • Tương thích ví truyền thống: 🔶 Tương thích an toàn với ví truyền thống, chẳng hạn như hỗ trợ sử dụng ví truyền thống để thực hiện các thao tác chữ ký.