Cloudflare Blog
85

Sản phẩm

WriteGuard: Giải pháp kiểm soát ghi dữ liệu chi tiết cho máy chủ MCP

(giờ Việt Nam)

Tóm tắt AI

Cloudflare ra mắt WriteGuard, lớp bảo mật giúp quản lý, xác thực và kiểm soát các thao tác ghi dữ liệu của AI agent trên máy chủ MCP, đảm bảo tính minh bạch và an toàn cho doanh nghiệp.

Bản dịch AI

WriteGuard: Fine-grained controls for MCP Servers

Hãy tưởng tượng về trường hợp "Những chiếc vé đóng mãi không dứt".

Các bug ticket bắt đầu được đóng vào buổi trưa. Không ai để ý nhiều đến điều đó. Joe đã chuyển một vài ticket sang trạng thái Done và Joe đang có một buổi chiều làm việc hiệu quả. Sau đó, tốc độ bắt đầu tăng lên. Đến 4 giờ chiều, hàng nghìn ticket đã được đóng, tất cả đều do Joe thực hiện.

Joe là một kỹ sư giỏi. Nhưng Joe không phải là một kỹ sư có khả năng đóng hàng nghìn ticket mỗi giờ.

Chúng tôi phát hiện ra rằng anh ấy có vài tác nhân (agent) chạy ngầm trên ba phiên làm việc đồng thời. Phải mất nửa giờ để tìm ra tác nhân gây lỗi: một tác vụ dọn dẹp với câu lệnh (prompt) quá rộng.

Sau khi dừng tác nhân đó, chúng tôi cần khôi phục trạng thái của hệ thống quản lý ticket. Chiều hôm đó, Joe cũng đã thực hiện đóng các ticket một cách hợp lệ bằng tay. Hệ thống ghi lại tất cả những thay đổi đó dưới tên Joe bất kể là do anh ấy hay do tác nhân của anh ấy thực hiện, và nhật ký mạng (network log) không phân biệt được phiên làm việc của tác nhân này với tác nhân khác. Từ bên ngoài, các hành động trông hoàn toàn giống hệt nhau.

Ví dụ trên có mức độ rủi ro tương đối thấp, nhưng tất cả chúng ta đều có thể hình dung hoặc đọc về những trường hợp mang tính hủy diệt hơn nhiều. Một tác nhân có quyền truy cập vào phần mềm hợp đồng có thể sửa đổi một thỏa thuận. Một tác nhân gây hỗn loạn trong hàng đợi hỗ trợ có thể gửi hàng trăm phản hồi cho khách hàng. Một tác nhân có quyền truy cập cơ sở dữ liệu có thể xóa toàn bộ các bảng.

Tại Cloudflare, chúng tôi biết rằng mình không thể phụ thuộc vào việc mọi nhân viên đều cấu hình mọi tác nhân một cách hoàn hảo hoặc theo dõi mọi lệnh gọi công cụ (tool call). Vì vậy, trước khi mở rộng quyền ghi trên các máy chủ MCP nội bộ, chúng tôi đã xây dựng WriteGuard. Hiện tại, chúng tôi đang mang các quyền kiểm soát đó đến các cổng máy chủ Cloudflare MCP thông qua bản thử nghiệm riêng (private beta).

Các nguyên lý cơ bản của MCP

Trước khi giải thích về WriteGuard, hãy cùng xem lại máy chủ MCP là gì và cách nó hoạt động với các tác nhân AI.

MCP là viết tắt của Model Context Protocol, một tiêu chuẩn phổ biến để kết nối các ứng dụng AI với các công cụ và nguồn dữ liệu bên ngoài. Các máy chủ MCP cung cấp những công cụ mà các ứng dụng khách (client) được kết nối có thể sử dụng. Mỗi công cụ đều có tên, mô tả, lược đồ đầu vào (input schema) và trình xử lý (handler) để thực hiện công việc.

Khi một tác nhân chọn một công cụ, ứng dụng khách MCP sẽ gửi lệnh gọi công cụ đó đến máy chủ, sau đó máy chủ sẽ tương tác với ứng dụng hạ nguồn (downstream application).

MCP tại Cloudflare

MCP là một phần quan trọng trong cơ sở hạ tầng hỗ trợ các tác nhân nội bộ của Cloudflare. Các tác nhân đó sử dụng MCP thông qua các ứng dụng khách cục bộ như OpenCode và Cloudflare OS, cũng như thông qua các dịch vụ tác nhân chạy dài hạn. Chúng tôi vận hành các máy chủ này phía sau Cloudflare Access và kết nối với chúng thông qua một cổng máy chủ MCP nội bộ duy nhất.

Khi chúng tôi mô tả về ngăn xếp kỹ thuật AI nội bộ vào tháng 4, cổng của chúng tôi kết nối 13 máy chủ MCP. Ngày nay, con số đó là 27, với các đội ngũ triển khai thêm nhiều máy chủ mỗi tháng. Tất cả chúng đều bắt đầu dưới dạng máy chủ chỉ đọc (read-only), cho phép các nhóm tìm kiếm Jira, GitLab, wiki và các hệ thống vận hành mà không làm thay đổi chúng.

Chỉ đọc là một điểm khởi đầu tốt. Khi các mô hình được cải thiện và các đội ngũ tích lũy kinh nghiệm với AI, mọi người từ kỹ thuật, sản phẩm, thiết kế, kinh doanh cho đến chăm sóc khách hàng bắt đầu yêu cầu các công cụ có khả năng thực hiện hành động.

Để tránh trường hợp "những chiếc vé đóng mãi không dứt" của chính mình, chúng tôi muốn có sự kiểm soát tập trung đối với các hành động ghi mà tác nhân có thể thực hiện, các nhãn tác nhân xuất hiện trong các ứng dụng hạ nguồn và một dấu vết kiểm toán (audit trail) giúp việc điều tra hoạt động của tác nhân trở nên dễ dàng. Chúng tôi không thể trông cậy vào các biện pháp kiểm soát phía ứng dụng khách như kỹ năng (skills) hay các câu lệnh gợi mở (elicitation prompts). Hành vi của chúng thay đổi tùy theo môi trường (harness) và người dùng có thể vô hiệu hóa chúng.

Vì vậy, chúng tôi đã xây dựng WriteGuard.

Giới thiệu về WriteGuard

WriteGuard là một lớp chính sách, quy gán (attribution) và kiểm toán dùng chung.

Nó sử dụng cấu hình của từng công cụ và ngữ cảnh yêu cầu để xác định điều gì sẽ xảy ra. WriteGuard có thể cho phép một lệnh gọi đi qua mà không thay đổi, làm phong phú các lệnh ghi được hỗ trợ bằng cách quy gán cho tác nhân và tạo ra một sự kiện kiểm toán đã được làm sạch, hoặc chặn một hành động trước khi trình xử lý của nó chạy.

Sơ đồ dưới đây cho thấy vị trí của WriteGuard trong kiến trúc MCP nội bộ hiện tại của chúng tôi.

WriteGuard kết hợp chính sách công cụ với danh tính con người và tác nhân, quy gán hạ nguồn và kiểm toán tập trung. Nó cung cấp cho chúng tôi một nơi duy nhất để kiểm soát các hành động của tác nhân và bảo toàn ngữ cảnh cần thiết để hiểu về chúng.

Từ các công cụ có thể gọi đến các hành động có thể quản lý

WriteGuard cho phép chúng tôi xác định chính sách song song với từng công cụ mà không cần thay đổi máy chủ MCP cơ sở. Mỗi công cụ đều có một bậc rủi ro (risk tier), trạng thái bật hoặc tắt và cấu hình gắn nhãn. Các bậc rủi ro xác định xem hành động đó có được ghi nhật ký hay không và lệnh gọi công cụ đó có được cho phép hay không; các bậc này cũng cho phép truy vấn nhật ký kiểm toán theo mức độ rủi ro. Chúng tôi hỗ trợ gắn nhãn để có thể chèn nhãn quy gán tác nhân và sử dụng định dạng văn bản tốt nhất cho ứng dụng hạ nguồn mà không cần thay đổi mã nguồn trong chính máy chủ MCP.

Bậc rủi ro

Ví dụ

Chỉ đọc (Read Only)

Tìm kiếm vấn đề; đọc một Merge Request (MR); xem trạng thái pipeline get_merge_request

Tác động tối thiểu (Minimal Impact)

Thêm phản ứng; đánh dấu thông báo là đã đọc; đăng ký theo dõi một vấn đề

Ghi có kiểm soát (Contained Write)

Thêm bình luận; tạo một MR; cập nhật trường của vấn đề create_mr_note

Nghiêm trọng (Critical)

Hợp nhất (Merge) một MR; kích hoạt triển khai sản xuất; xóa hàng loạt bản ghi merge_mr

Hiện tại, chúng tôi xác định cấu hình này bằng TypeScript trong monorepo MCP nội bộ của mình. Khi quyền truy cập thử nghiệm riêng được triển khai trong những tháng tới, các chủ sở hữu máy chủ sẽ có thể cấu hình các chính sách tương tự thông qua các cổng máy chủ Cloudflare MCP. Mỗi máy chủ MCP sẽ có một chính sách Access cơ sở cùng với các quyền kiểm soát WriteGuard cho từng công cụ riêng lẻ.

Giữ lại con người, thêm vào tác nhân

Các máy chủ MCP nội bộ của chúng tôi sử dụng Cloudflare Access và OAuth để xác định người dùng. Do đó, các tác nhân sử dụng các máy chủ đó hoạt động với quyền hạn của nhân viên đó. Nếu Joe không thể đóng một vấn đề cụ thể, tác nhân của Joe cũng không thể đóng nó.

Chúng tôi giữ mô hình đó thay vì giới thiệu các tài khoản tác nhân độc lập. Tài khoản tác nhân sẽ tạo ra một bộ quyền thứ hai cần quản lý và làm cho mối liên hệ với người chịu trách nhiệm về tác nhân đó trở nên kém rõ ràng hơn. Tuy nhiên, sự đánh đổi của quyết định này là các ứng dụng hạ nguồn nhìn thấy thông tin xác thực của Joe nhưng không có gì xác định được tác nhân đứng sau hành động đó.

WriteGuard thêm ngữ cảnh phiên làm việc và ứng dụng khách MCP vào danh tính con người, xác định mỗi lệnh ghi là một phiên làm việc của tác nhân thay mặt cho một người cụ thể. Đáng chú ý, việc quy gán đó cực kỳ hữu ích ngay cả khi không có sự cố nào xảy ra. Nó giúp con người và các tác nhân khác diễn giải các thay đổi và quyết định cách phản hồi.

CloudflareMCPBảo mật AIQuản trị AIEnterprise AI
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Cloudflare Blog. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.