Tưởng chỉ là cấu hình MCP, ai ngờ có thể trở thành đường dẫn thực thi mã độc

Duy Linh
Duy Linh
Phản hồi: 0

Duy Linh

Writer
Một pull request (PR) độc hại có khả năng biến cấu hình Giao thức Ngữ cảnh Mô hình (MCP) phạm vi dự án của Claude Code thành tác nhân kích hoạt thực thi mã, từ đó có thể làm lộ các bí mật mà nhà phát triển có quyền truy cập trước khi người đánh giá kịp xem xét mã.
1786345262784.png
Theo các nguồn tin, Anthropic thiết kế hành vi này dựa trên mô hình tin cậy không gian làm việc, trong đó ranh giới bảo mật được xác định ngay từ quyết định ban đầu về việc có tin tưởng một thư mục hay không.

Các nhà nghiên cứu đã chứng minh một kịch bản trong đó người duy trì một dự án mã nguồn mở tin tưởng kho lưu trữ cục bộ, sau đó kiểm tra nhánh chứa pull request của một người đóng góp và khởi chạy Claude Code thông qua giao diện dòng lệnh (CLI) hoặc tiện ích mở rộng VS Code.

Nếu nhánh này chứa tệp cấu hình <span>.mcp.json</span> ở cấp dự án, Claude Code có thể đọc tệp trong quá trình khởi động phiên và tự động khởi tạo những máy chủ MCP được khai báo.

Các máy chủ Giao thức Ngữ cảnh Mô hình (MCP) cho phép các tác nhân lập trình AI truy cập công cụ và dịch vụ bên ngoài. Những máy chủ này có thể là dịch vụ HTTP từ xa hoặc các quy trình được khởi chạy cục bộ. Trong đó, việc khởi chạy quy trình cục bộ tiềm ẩn rủi ro đáng kể.

Theo Immersive Labs, cấu hình dự án có thể chỉ định lệnh cùng các đối số cho máy chủ MCP cục bộ, sau đó chạy máy chủ này với quyền của hệ điều hành hiện tại mà nhà phát triển đang sử dụng.

Trong thử nghiệm, kẻ tấn công có thể đưa một mục MCP trông như bình thường, chẳng hạn được mô tả là một công cụ phát triển cần thiết, vào pull request.

Khi nhà phát triển mở Claude Code sau khi chuyển sang nhánh đó, cấu hình sẽ được đọc và tiến trình cục bộ bắt đầu liệt kê các công cụ hiện có trên máy chủ. Đáng chú ý, không cần nhà phát triển phải yêu cầu Claude Code xem xét mã hoặc gọi một công cụ cụ thể.

Điều này tạo ra một kịch bản chuỗi cung ứng đáng lo ngại. Phần mềm độc hại có thể nhắm tới những thông tin mà tài khoản hiện tại của nhà phát triển có quyền truy cập, bao gồm biến môi trường, khóa SSH, mã thông báo đám mây và các cấu hình liên quan đến tác nhân.

Các nhà nghiên cứu lưu ý rằng hành vi này thậm chí có thể xảy ra trước khi phiên tài khoản Claude được thiết lập, bởi việc khởi chạy máy chủ MCP cục bộ không phụ thuộc vào trạng thái đăng nhập.

Mô hình tin cậy của Claude Code và cách phòng thủ​

Phản hồi của Anthropic được nêu trong thông báo cho biết việc tin tưởng một không gian làm việc bao gồm cấu hình của kho lưu trữ cũng như nội dung sau đó được kiểm xuất vào thư mục, trong đó có cả những nhánh khác.

Theo mô hình này, nếu một pull request sửa đổi tệp <span>.mcp.json</span> sau khi thư mục đã được tin tưởng, thay đổi đó sẽ không vượt qua một ranh giới bảo mật mới.

Quan điểm này phản ánh cách tiếp cận rộng hơn về độ tin cậy trong không gian làm việc: độ tin cậy được gán cho thư mục thay vì liên kết bằng mật mã với một phiên bản cụ thể hoặc các tệp cấu hình tại thời điểm phê duyệt.

Mối lo ngại thực tế là các thao tác quản lý mã nguồn có thể đưa những cấu hình tác nhân có khả năng thực thi vào môi trường sau khi thư mục đã được phê duyệt, mà không nhất thiết phải yêu cầu nhà phát triển xác nhận lại.

Hướng dẫn bảo mật do Anthropic công bố cho biết Claude Code sử dụng quyền hạn, chế độ hộp cát tùy chọn và cơ chế xác minh độ tin cậy đối với lần chạy mã nguồn đầu tiên cũng như các máy chủ MCP mới. Anthropic cũng khuyến nghị người dùng làm việc trong máy ảo (VM) khi tương tác với nội dung không đáng tin cậy và xác minh các thay đổi đối với những tệp quan trọng.

Với các nhóm phát triển, cấu hình tác nhân AI nên được xem như mã có thể thực thi và cần được đưa vào quy trình đánh giá mã với mức độ kiểm tra phù hợp. Các biện pháp được đề xuất gồm:

  • Yêu cầu xem xét riêng đối với các tệp <span>.mcp.json</span>, thư mục <span>.claude/</span>, cài đặt IDE, hook và tệp quy trình làm việc.
  • Chặn hoặc cảnh báo khi các máy chủ MCP phạm vi dự án mới được đưa vào pull request.
  • Kiểm tra lại cấu hình tác nhân trước khi sao chép những nhánh không đáng tin cậy vào máy cục bộ.
  • Sử dụng máy ảo biệt lập, vùng chứa phát triển hoặc môi trường hộp cát hạn chế khi xem xét pull request.
  • Hạn chế quyền truy cập mạng ra bên ngoài và tránh để thông tin đăng nhập đám mây hoặc hệ thống quản lý mã nguồn có thời hạn dài trong môi trường lập trình dành cho nhà phát triển.
  • Kiểm tra các phụ thuộc MCP, bao gồm những gói và ảnh container được sử dụng để khởi chạy công cụ cục bộ.
Các nhà nghiên cứu cũng đề xuất liên kết mức độ tin cậy với mã băm của những tệp cấu hình có thể thực thi, sau đó hiển thị cảnh báo cho người dùng mỗi khi các tệp này thay đổi. Dù phương pháp này không hoàn hảo, nó có thể giúp hiển thị những cấu hình MCP được đưa vào thông qua một nhánh trước khi cho phép chúng thực thi.
 
Được phối hợp thực hiện bởi các chuyên gia của Bkav, cộng đồng An ninh mạng Việt Nam WhiteHat và cộng đồng Khoa học công nghệ VnReview
Back
Top