MCP Security là gì? Hướng dẫn quản trị rủi ro cho AI Agent

MCP Security là tập hợp các biện pháp kỹ thuật và quy trình vận hành dùng để bảo vệ các triển khai Model Context Protocol khi AI Agent được phép gọi tool và thao tác trực tiếp trên hệ thống dữ liệu thật. Bài viết này trình bày khái niệm MCP security, các rủi ro cốt lõi, nguyên tắc thiết kế, kiểm soát chuỗi cung ứng, quản lý OAuth và runbook để vận hành an toàn cho MCP.
Những điểm chính
- Khái niệm MCP Security: Hiểu rõ đây là tập hợp các biện pháp kỹ thuật và quy trình vận hành giúp bảo vệ hệ thống khi cho phép AI Agent giao tiếp trực tiếp với dữ liệu nội bộ thông qua MCP.
- Nhận diện các rủi ro cốt lõi: Nắm bắt cấu trúc Client-Server của MCP cùng các điểm trọng yếu cần kiểm soát từ lúc khám phá công cụ, truyền token xác thực đến khi thực thi truy cập tài nguyên.
- Nguyên tắc thiết kế an toàn: Biết được tư duy thiết kế Zero-trust, đặc quyền tối thiểu và phòng thủ nhiều lớp để xây dựng một hệ thống MCP vững chắc, giảm thiểu tối đa rủi ro từ các cuộc tấn công.
- Quy trình bảo mật 5 bước: Nắm vững lộ trình triển khai từ việc kiểm soát nguồn cung, bắt buộc con người phê duyệt đến giám sát hệ thống.
- Bảo vệ chuỗi cung ứng: Khám phá cách chống lại các mã độc ẩn nấp bằng việc chỉ dùng MCP Server từ các Registry uy tín, sử dụng chữ ký số và kiểm tra kỹ các file cài đặt phụ thuộc.
- Quản trị danh tính và phân quyền: Biết cách ứng dụng chuẩn OAuth 2.1 để xác thực an toàn, thu hẹp phạm vi truy cập và ngăn chặn tình trạng AI tự ý dùng token sai mục đích.
- Câu hỏi thường gặp: Được giải đáp các thắc mắc về sự khác biệt rủi ro giữa Local và Remote MCP Server, cách phát hiện sớm tình trạng "đầu độc" công cụ và lý do vì sao chỉ dùng OAuth là chưa đủ để bảo vệ hệ thống.
MCP Security là gì?
MCP Security là tập hợp các cơ chế bảo vệ áp dụng cho Model Context Protocol nhằm bảo đảm tính bảo mật, toàn vẹn và khả dụng của các hệ thống AI sử dụng MCP để kết nối với công cụ và dữ liệu bên ngoài. Nói cách khác, MCP Security bao gồm các biện pháp kiến trúc, kiểm soát truy cập và quy trình vận hành được thiết kế để giảm thiểu rủi ro như truy cập trái phép, rò rỉ dữ liệu và tấn công chuỗi cung ứng đối với MCP client và MCP server.

MCP Security là tập hợp các cơ chế bảo vệ áp dụng cho Model Context Protocol
Mô hình kiến trúc MCP và các điểm cần bảo vệ
Kiến trúc Client–Server của MCP
Kiến trúc MCP tuân theo mô hình client–server với một số thành phần trọng yếu cần được xem xét dưới góc độ bảo mật.
- MCP Client: Thành phần chạy trong IDE, ứng dụng desktop hoặc agent framework, thiết lập kết nối, gửi yêu cầu JSON-RPC và nhận phản hồi từ MCP server.
- MCP Server: Dịch vụ triển khai giao thức MCP, công bố và thực thi các tools, cung cấp resources và system prompts theo schema chuẩn để client có thể khám phá và sử dụng.
- Gateway, proxy hoặc broker (nếu có): Lớp trung gian gom nhiều MCP server, thực hiện định tuyến, áp dụng xác thực tập trung, giới hạn truy cập và quan sát lưu lượng giữa client và server.

Mô hình kiến trúc Client–Server của MCP
Các luồng bảo mật chính trong MCP
Trong một triển khai MCP điển hình, các luồng giao tiếp sau đây là trọng tâm của thiết kế bảo mật.
- Khám phá server, metadata và manifest: Client tải và đọc manifest, metadata của MCP server để lấy danh sách tools, resources, cấu hình transport và phạm vi truy cập, đây là điểm cần kiểm tra tính toàn vẹn và nguồn gốc.
- Thiết lập kết nối, xác thực và truyền token: Client khởi tạo kết nối qua transport như STDIO hoặc HTTP, thực hiện cơ chế xác thực phù hợp và truyền token truy cập với scope đã được định nghĩa.
- Thực thi tool và truy cập tài nguyên: Client gửi yêu cầu JSON-RPC để gọi tool hoặc truy cập resources và nhận kết quả, trong đó cần áp dụng kiểm soát quyền, giới hạn phạm vi dữ liệu và kiểm tra dữ liệu đầu vào và đầu ra.
Các rủi ro bảo mật cốt lõi trong MCP
1. Tấn công chuỗi cung ứng (Supply Chain Attacks)
Trong hệ sinh thái MCP, tấn công chuỗi cung ứng xuất hiện khi MCP server hoặc thành phần phụ thuộc bị thay đổi theo hướng độc hại trước khi được triển khai. Các rủi ro thường gặp gồm sử dụng server bên thứ ba không được kiểm chứng, binary hoặc container image bị chèn mã độc, typosquatting trên tên gói, bản build không được ký và image bị chỉnh sửa trên registry.
2. Prompt Injection và Tool Poisoning
Prompt injection và tool poisoning tác động trực tiếp vào cách AI xử lý ngữ cảnh và lựa chọn tool. Các kịch bản rủi ro bao gồm nội dung độc hại được cài trong dữ liệu, repository, file hoặc message của người dùng, cũng như tool giả, mô tả tool mơ hồ, metadata bị sửa để đánh lạc hướng mô hình chọn và sử dụng tool không an toàn.
3. Lạm dụng đặc quyền và Confused Deputy
Lạm dụng đặc quyền xảy ra khi MCP server hoặc proxy được cấp quyền vượt quá nhu cầu thực tế, tạo điều kiện cho việc truy cập dữ liệu nhạy cảm. Mô hình Confused Deputy trong bối cảnh MCP thường xuất hiện khi MCP proxy dùng OAuth với scope rộng và agent sử dụng server này để thực hiện các hành động mà người dùng không mong muốn, do server được coi là principal có đặc quyền.
4. Token Passthrough và sai phạm trong ủy quyền
Sai sót trong xử lý token dẫn đến nhiều vấn đề về ủy quyền trong MCP. Các lỗi phổ biến gồm mô hình anti pattern token passthrough (chuyển tiếp nguyên trạng token giữa các dịch vụ), sử dụng token không đúng audience và bỏ qua kiểm tra claim, scope hoặc audience, từ đó cho phép yêu cầu vượt qua ranh giới tin cậy.
5. SSRF và tấn công qua metadata hoặc OAuth discovery
Khi MCP server xử lý URL do client cung cấp, nguy cơ SSRF (Server Side Request Forgery) và lạm dụng cơ chế metadata tăng lên. Kẻ tấn công có thể lợi dụng endpoint metadata, URL discovery hoặc redirect chain để truy cập mạng nội bộ, dịch vụ metadata của cloud hoặc địa chỉ IP nội bộ thông qua DNS rebinding và chuyển hướng tới private IP.
6. Session Hijacking và chiếm đoạt phiên MCP
Quản lý phiên không chặt chẽ trong MCP có thể dẫn tới chiếm đoạt phiên. Các rủi ro gồm tái sử dụng session ID giữa nhiều server hoặc hàng đợi sự kiện, không gắn session với danh tính người dùng hoặc client cụ thể, dẫn đến khả năng mạo danh và lẫn lộn trạng thái giữa các tác nhân.
7. Misconfigurations và cấu hình mặc định yếu
Sai cấu hình là nguồn rủi ro phổ biến trong triển khai MCP server. Ví dụ bao gồm chạy MCP server trực tiếp trên host với quyền cao, không giới hạn egress từ server ra ngoài, không bật logging hoặc audit phù hợp, cũng như sử dụng catalog hoặc registry mà không kiểm soát, cho phép tool chưa được duyệt xuất hiện trong môi trường sản xuất.
8. Thất bại trong quản lý secret (Secret Management Failures)
Quản lý secret không đúng chuẩn ảnh hưởng trực tiếp đến an toàn của MCP. Các lỗi điển hình là để lộ secret trong biến môi trường, chèn khóa truy cập trong prompt hoặc cấu hình tool, đưa token và mật khẩu vào output hoặc log, khiến thông tin nhạy cảm có thể bị truy cập bởi agent, người dùng hoặc hệ thống logging.

Một số rủi ro bảo mật trong MCP
Nguyên tắc thiết kế tổng thể cho MCP Security
1. Zero-trust với MCP servers và các lời gọi tool
Trong môi trường MCP, mỗi server và mỗi tool call cần được xử lý theo tư duy zero trust, tức là không mặc định tin cậy bất kỳ thành phần nào nếu chưa được xác thực và kiểm tra. Điều này bao gồm xác minh danh tính server, kiểm tra chữ ký, giới hạn những tool nào client được phép gọi và ghi nhận đầy đủ mọi hành động để có thể truy vết khi xảy ra sự cố.

Trong MCP, mỗi server và mỗi tool call cần được xử lý theo tư duy zero trust
2. Least privilege cho scope, quyền hệ thống và network egress
Nguyên tắc đặc quyền tối thiểu yêu cầu mọi quyền truy cập trong MCP đều được thu hẹp ở mức cần thiết nhất cho từng tác vụ. Cụ thể, scope trong token, quyền hệ thống của tiến trình MCP server và quyền egress mạng cần được cấu hình sao cho mỗi server chỉ truy cập được tài nguyên, API và địa chỉ mạng đúng với use case đã định.
3. Defense-in-depth trên client, server, gateway và hạ tầng
Defense in depth trong MCP nghĩa là bố trí nhiều lớp kiểm soát an ninh từ client đến server, gateway và tầng hạ tầng mạng. Mỗi lớp đảm nhận một phần nhiệm vụ như xác thực kết nối, kiểm soát quyền với token, giới hạn khả năng tool, sandbox thực thi, giám sát log và phát hiện bất thường, nhằm giảm thiểu tác động nếu một lớp bị xâm phạm.
4. Xem MCP như một toolchain được quản trị, không chỉ là SDK
Về góc độ vận hành, MCP cần được đối xử như một toolchain được quản trị với chính sách, quy trình phê duyệt và quan sát tập trung, không chỉ là bộ SDK lập trình. Cách tiếp cận này bao gồm sử dụng gateway hoặc broker để áp chính sách, duy trì danh sách server được cho phép, kiểm soát phiên bản và chữ ký, cũng như quản lý bí mật và audit trên toàn bộ chuỗi MCP.

MCP là một toolchain được quản trị với chính sách, quy trình phê duyệt và quan sát tập trung
Quy trình 5 bước bảo mật hệ thống MCP
Để triển khai MCP an toàn trong môi trường thực tế, có thể áp dụng quy trình kiểm soát gồm năm bước từ khâu nguồn cung đến giám sát.
- Kiểm soát nguồn cung: Chỉ cài đặt MCP server từ registry hoặc catalog đáng tin cậy và kiểm tra nội dung tệp cấu hình như package.json hoặc requirements.txt để phát hiện dependency bất thường trước khi khởi chạy.
- Triển khai Human in the Loop (HITL): Cấu hình MCP client yêu cầu người dùng xác nhận thủ công đối với các tác vụ nhạy cảm như xóa file, ghi dữ liệu quan trọng hoặc thực hiện các cuộc gọi API ra môi trường internet.
- Sandboxing và cách ly môi trường: Chạy MCP server trong container hoặc môi trường tách biệt để giới hạn phạm vi truy cập hệ thống và dữ liệu, đồng thời sử dụng user namespace để giảm rủi ro chiếm quyền điều khiển host.
# Ví dụ cấu hình Docker an toàn cho MCP Server
docker run --read-only \
--cap-drop=ALL \
--network=none \
--user=1001:1001 \
-v /path/to/data:/data:ro \
mcp-server-image
- Áp dụng đặc quyền tối thiểu (Least Privilege): Tránh chạy MCP server với quyền root và tạo user hệ thống riêng chỉ có quyền truy cập đúng thư mục hoặc tài nguyên cần thiết cho từng server.
- Logging và Monitoring: Thiết lập logging qua stdout hoặc hệ thống log tập trung để ghi nhận mọi yêu cầu gọi tool và sử dụng nền tảng giám sát như Datadog hoặc ELK để cấu hình cảnh báo khi phát hiện tần suất bất thường hoặc đích đến API đáng nghi.

Quy trình bảo mật hệ thống MCP
Kiểm soát Supply Chain Security
1. Kiểm soát nguồn cung và registry MCP server
Kiểm soát chuỗi cung ứng MCP bắt đầu từ việc lựa chọn nguồn MCP server và registry sử dụng trong môi trường triển khai. Tổ chức nên ưu tiên registry hoặc catalog uy tín, áp dụng chế độ mặc định từ chối, yêu cầu ký số manifest và xác minh publisher trước khi chấp nhận một MCP server vào môi trường.
2. Ký số, version pinning và kiểm tra tính toàn vẹn
Để giảm nguy cơ thay đổi MCP server sau khi phát hành, cần kết hợp ký số và cố định phiên bản. Thực tiễn bao gồm ký container hoặc binary, pin digest thay vì dùng thẻ latest, kiểm tra checksum và áp dụng cơ chế xác minh integrity trước khi triển khai hoặc nâng cấp.
3. Đánh giá dependency, manifest và lệnh khởi động
Chiến lược bảo vệ chuỗi cung ứng MCP cũng yêu cầu kiểm tra kỹ các thành phần phụ thuộc và cấu hình khởi động. Cần rà soát file dependency như package.json hoặc requirements.txt, đánh giá manifest của MCP server và kiểm tra các script khởi động để phát hiện thư viện rủi ro hoặc lệnh khởi chạy không mong muốn.
4. Sử dụng MCP Catalog, Toolkit hoặc curated catalogs
Việc sử dụng các MCP Catalog và Toolkit được kiểm duyệt giúp giảm rủi ro từ server không tin cậy. Các catalog được chọn lọc cung cấp danh sách MCP server đã được đánh giá về bảo mật và chất lượng, hỗ trợ đội ngũ phát triển tận dụng lại cấu hình an toàn và hạn chế nguy cơ đưa server độc hại vào hệ thống.

Quy trình kiểm soát Supply Chain Security
Quản lý danh tính, OAuth và phân quyền trong MCP
1. Tổng quan Authorization trong MCP
Authorization trong MCP định nghĩa cách MCP client gửi token và cách MCP server xác thực, phân quyền cho từng lời gọi tool hoặc truy cập resource. Đối với HTTP transport, đặc tả MCP xây dựng trên OAuth 2.1 và các chuẩn liên quan để hỗ trợ khám phá metadata, đăng ký client và kiểm soát access token theo resource cụ thể.
2. OAuth 2.1 cho MCP HTTP và các flow khuyến nghị
Trong bối cảnh MCP HTTP, OAuth 2.1 là cơ chế ủy quyền được khuyến nghị cho cả người dùng cuối và kịch bản server to server. Thực tế triển khai thường dùng Authorization Code kết hợp PKCE cho người dùng cuối truy cập MCP server qua client như IDE hoặc desktop app, còn luồng Client Credentials được dùng cho MCP server hoặc dịch vụ nền khi gọi sang MCP server khác hoặc API nội bộ.
3. Tránh token passthrough và thiết kế audience đúng
Đặc tả MCP yêu cầu tránh mô hình token passthrough trong đó MCP server chỉ nhận và chuyển tiếp nguyên token đến hệ thống downstream. MCP server cần xác minh audience và các claim liên quan, chỉ chấp nhận token được phát hành đích danh cho server và sử dụng token riêng khi gọi sang dịch vụ khác để không phá vỡ ranh giới ủy quyền.

MCP server cần xác minh audience và các claim liên quan
4. Thu hẹp scope và nâng quyền theo nhu cầu
Thiết kế phân quyền trong MCP nên bắt đầu với phạm vi quyền tối thiểu và chỉ mở rộng khi có nhu cầu rõ ràng. Một mẫu triển khai phổ biến là cấp các scope ban đầu ở mức đọc hoặc ít nhạy cảm, sau đó khi gặp thao tác nhạy cảm, MCP server trả về phản hồi kèm header WWW Authenticate để hướng dẫn client thực hiện bước nâng quyền với scope cao hơn.
5. Consent theo từng client và giảm rủi ro Confused Deputy
Để tránh trạng thái Confused Deputy, mỗi MCP client cần được nhận diện rõ ràng và gắn với quy trình consent riêng. Các biện pháp gồm đăng ký client id theo từng người dùng hoặc ứng dụng, dùng giao diện consent riêng với chống CSRF và state parameter, xác thực chặt chẽ redirect URI cùng với cookie an toàn cho phiên người dùng.

Mỗi MCP client cần được nhận diện rõ ràng và gắn với quy trình consent riêng
Giải đáp thắc mắc thường gặp
Local MCP server và Remote MCP server khác nhau thế nào về bảo mật?
Local server có quyền ghi/xóa trực tiếp trên máy host nên rủi ro cao hơn. Remote server tách biệt hạ tầng nhưng cần xác thực kết nối chặt chẽ để tránh bị giả mạo.
Làm sao để phát hiện sớm Tool Poisoning?
Hãy kiểm tra định nghĩa trong tệp manifest.json của server. Đảm bảo tên và mô tả của các tool không bị trùng lặp với các hàm chức năng quan trọng khác trong hệ thống của bạn.
OAuth có đủ để bảo vệ MCP server không?
OAuth chỉ giúp định danh người dùng, không ngăn được AI tự ý sử dụng token đó sai mục đích. Bạn cần kết hợp thêm các chính sách kiểm soát truy cập (Policy-based Access Control).
MCP Security yêu cầu kết hợp nhiều lớp kiểm soát như zero trust, least privilege, bảo vệ chuỗi cung ứng, quản lý danh tính và giám sát liên tục để giảm thiểu rủi ro khi AI Agents tương tác với hạ tầng thật. Khi xây dựng và vận hành hệ thống theo các thực tiễn MCP Security này, tổ chức có thể khai thác MCP cho AI Agents ở quy mô sản xuất mà vẫn duy trì mức an toàn chấp nhận được cho dữ liệu và hệ thống nội bộ.